程序
#include <stdio.h>int main()
{
float i;
printf("请输入你的成绩:");
scanf("%f",&i);
switch(i)
{
case(i<=100&&i>90):printf("A\n");break;
case(i<=90&&i>80):printf("B\n");break;
case(i<=80&&i>70):printf("C\n");break;
case(i<=70&&i>60):printf("D\n");break;
case(i<=60):printf("E\n");break;
}
return 0;
}
兄弟们,我哪里没做好呀,我看不出来
本帖最后由 jackz007 于 2021-10-31 23:24 编辑
case 的后面必须是一个确定的枚举值。
#include <stdio.h>
int main(void)
{
int i ;
printf("请输入你的成绩:") ;
scanf("%d" , & i) ;
switch(i / 10 ) {
case 10 : switch(i % 100) {
case 0 : printf("A\n") ; break;
default : printf("分数无效!\n") ;
}
break ;
case9 : printf("A\n") ; break ;
case8 : printf("B\n") ; break ;
case7 : printf("C\n") ; break ;
case6 : printf("D\n") ; break ;
case5 :
case4 :
case3 :
case2 :
case1 :
case0 : printf("D\n") ; break ;
default : printf("分数无效!\n") ;
}
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
请输入你的成绩:101
分数无效!
D:\00.Excise\C>x
请输入你的成绩:100
A
D:\00.Excise\C>x
请输入你的成绩:99
A
D:\00.Excise\C>x
请输入你的成绩:89
B
D:\00.Excise\C>x
请输入你的成绩:78
C
D:\00.Excise\C>x
请输入你的成绩:-10
分数无效!
D:\00.Excise\C>
case后面必须是常量表达式,不能是判断语句,i<=100&&i>90是一个判断语句。
可以这样改
#include <stdio.h>
int main()
{
float i;
printf("请输入你的成绩:");
scanf("%f",&i);
if (i<=100&&i>90) {
printf("A\n");
} else if (i<=90&&i>80) {
printf("B\n");
} else if (i<=80&&i>70) {
printf("C\n");
} else if (i<=70&&i>60) {
printf("D\n");
} else {
printf("E\n");
}
return 0;
}
jackz007 发表于 2021-10-31 23:00
case 的后面必须是一个确定的枚举值。
编译、运行实况:
100的时候不是符合case10吗
本帖最后由 jackz007 于 2021-11-1 21:27 编辑
黑月黄龙 发表于 2021-11-1 21:18
100的时候不是符合case10吗
是的,但是,在 case 10 里,不仅包括 100,同时还包括 101~109,咱还得排除分数超过 100 的情形。 黑月黄龙 发表于 2021-11-1 21:18
100的时候不是符合case10吗
如果问题已经解决,应该设置 "最佳答案"。 jackz007 发表于 2021-11-1 21:23
是的,但是,在 case 10 里,不仅包括 100,同时还包括 101~109,咱还得排除分数超过 100 的 ...
那为什么输入一百还会出现A呢 黑月黄龙 发表于 2021-11-3 15:07
那为什么输入一百还会出现A呢
难道你希望输入 100 不是打印 A 吗?
页:
[1]