#include <stdio.h>
int main(void)
{
char grade;
scanf("%c",&grade);
printf("你的成绩范围:\n");
switch(grade)
{
case'A':printf("85-100\n");break;
case'B':printf("70-84\n");break;
case'C':printf("60-69\n");break;
case'D':printf("0-60\n");break;
default:printf("error\n");
}
return 0;
}
case后面一定是常量或者常量表达式,但是一定不可以是逻辑表达式
这样便会出错。
if语句:
int main (void)
{
float score;
printf(" 请输入成绩:\n ");
scanf( "%f", &score );
if (score>=90 && score<=100)
printf("优秀\n");
else if ( score>=80 && score<90 )
printf(" 良好!\n");
else if (score>=60 && score<80)
printf(" 及格!\n");
else if (score>=0 && score<60)
printf(" 不及格,继续努力!\n");
else if (score>100)
printf("你这是在做梦!\n");
else
printf("输入错误,请重新输入!!!!!!\n");
return 0;
}
注释:
如果想用switch语句来输出等级,可以考虑用取整
#include <stdio.h>
int main()
{
double score;
int a;
while (scanf("%lf", &score))
{
if (score < 0 || score > 100)
{
printf("请输入0-100范围内的分数\n");
continue;
}
a = (int)score / 10;
switch (a)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
printf("E\n");
break;
case 6:
printf("D\n");
break;
case 7:
printf("C\n");
break;
case 8:
printf("B\n");
break;
case 9:
case 10:
printf("A\n");
break;
default:
break;
}
}
return 0;
}