
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
int score;
while(~scanf("%d", &score))
{
if(score > 100 || score < 0)
{
printf("Score is error!");
}
else {
switch(score/10)
{
case 9 ... 10:
// case 9:
printf("A");
break;
case 8:
printf("B");
break;
case 7:
printf("C");
break;
case 6:
printf("D");
break;
case 0 ... 5:
// case 4:
// case 3:
// case 2:
// case 1:
// case 0:
printf("E");
break;
default:
printf("Score is error!");
}
}
printf("
");
}
return 0;
}
第一次遇见case 0 ... 5 这种写法, 这样写使得使用case写代码简化了不少, 0...5只能升序, 不能写成5...0
一定要注意, 不能直接写一个default来处理其他情况, 加入输入负数的话, switch中得到了0, 则会输出E, 所以要在输入是判断输入的数字是否在0~100之间
当然还有比较简洁的写法
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main()
{
char map[12] = "EEEEEEDCBAA";
int score;
while(~scanf("%d", &score))
{
if(score > 100 || score < 0)
{
printf("Score is error!
");
}
else
{
printf("%c
", map[score/10]);
}
}
return 0;
}