欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}