C语言中swich函数的一些问题,程序代码如下,请问为什么会提示case expression not constantPS:本人新手

#include<stdio.h>

main()
{
int score;

printf("请输入成绩");
scanf("%c", &score);

switch(score)
{
case score<100:
printf(" You should work hard\n");
break;
case score>=100:
printf("You did vert well\n");
break;
defualt:
printf("用户未响应,操作取消\n");
}
}

switch(score)
case 80: //分数为80时采取操作

case 90: //分数为80时采取操作
case 100: //分数为80时采取操作
....
以此类推。

总的说,case x 中的x是一个常量,当其值与score相等时才执行操作,而不能是个条件。

你这种情况还是用判断吧:
if() ;

else if() ;

else ;

这样比较好。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-22

switch害死人啊……

if (score<100)
    printf(" You should work hard\n");
else if (score>=100)
    printf("You did vert well\n");
else
    printf("用户未响应,操作取消\n");

这才是你需要的

追问

不能使用swtich进行判断范围吗,PS本人新手,正在尝试各种函数

追答

    不能,不过有些编译器的extension支持

    怎么会有

    switch是函数

    这种错觉?
第2个回答  2014-03-22
这个要用 if ... else ... 语句。
case 后面只能是常量,不能是布尔运算式。
第3个回答  2014-03-22
有if-elseif不用偏要用这个switch。。。。。。。。
大家正在搜