c语言switch语句,输入一个成绩,划分等级,请问下面代码哪里错了?

#include <stdio.h>
int main()
{
double grade;
scanf("%f",&grade);
switch(grade>=90&&grade<=100)
{
case 1:printf("grade:A\n");break;
case 0:switch(grade>=80&&grade<=89)
{
case 1:printf("grade:B\n");break;
case 0:switch(grade>=70&&grade<=79)
{
case 1:printf("grade:C\n");break;
case 0:switch(grade>=60&&grade<=69)
{
case 1:printf("grade:D\n");break;
case 0:switch(grade<60)
{
case 1:printf("grade:E\n");break;
}}}}}

return 0;
}

scanf("%f",&grade);
改成
scanf("%d",&grade);
%f代表你输入的是浮点数,浮点数无法和整数直接进行相等比较,例如1.0在计算机里是不等于1的追问

哦~确实,我把double改成int,再把f改成d后就可以了

为什么说我的switch case判断有错呢?这不是嵌套吗?

追答

哦,是我无知了,没这么用过

可以看看这个网页链接

温馨提示:答案为网友推荐,仅供参考
相似回答