C++-----switch的使用实例---成绩转换(HD)
程序员文章站
2024-03-18 20:54:52
...
C++ switch-case语句的执行流程是:
- 1 首先计算switch后面圆括号中表达式的值;
- 2 用此值依次与各个case的常量表达式比较;
- 3若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇break语句就退出switch语句;
- 4若圆括号中表达式的值与所有case后面的常量表达式都不等;
- 5则执行default后面的语句n+1,然后退出switch语句,程序流程转向开关语句的下一个语句.
switch(表达式)
{
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
……
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
实例:
成绩转换
Problem Description
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input
56
67
100
123
Sample Output
E
D
A
Score is error!
#include <iostream>
#include <iomanip>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int x;
while(cin>>x)
{
if (x==100)
cout<<"A"<<endl;
else
if(x<0)
cout<<"Score is error!"<<endl;
else
{
x=x/10;
switch(x){
case 9:
cout<<"A"<<endl;break;
case 8:
cout<<"B"<<endl;break;
case 7 :
cout<<"C"<<endl;break;
case 6:
cout<<"D"<<endl;break;
case 5 :
case 4 :
case 3 :
case 2 :
case 1 :
case 0 :
cout<<"E"<<endl;break;
default :
cout<<"Score is error!"<<endl;}
}
}
return 0;
}