c语言 多分支的问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 05:10:09
谁能帮我看看这个程序,有三处错误。
另外和我说下多分支选择结构中的CASE包含的表达式是何种类型。
#include<stdio.h>
void main()
{
int score;
printf("please enter the score:");
scanf("%d",&score);
switch(score)
{
case(score<=100&&score>=60):printf("ni jige le\n");break;
case(score<=60&&score>=0):printf("ni mei jige\n");break;
default:printf("error\n");
}
}

#include <stdio.h>
void main()
{
int n;
float score;
printf("please enter the score:");
scanf("%f",&score);
n=(int)(score/10);
if(n>=6)
n=1;
else if(n<6)
n=0;
switch(n)
{
case 1:printf("你及格了\n");break;
case 0:printf("你没及格\n");break;
default:printf("error\n");
}

}
case后面应该带常量,不能为表达式或变量

这个不能用case作吧
用if..else
if(score<=100&&score>=60)
printf("ni jige le\n");
else if(score<=60&&score>=0)
printf("ni mei jige\n");
else
("error\n");

这样会比较容易

错误: case 表达式不是常量

必须是常量才行,你要达到的效果可以用if ,else if ,else来实现,用 case来实现反倒麻烦。、

case后面不能是表达式,必须是一个常量

这个程序不适合用switch写,switch中的case后面只能用常量,不能用表达式,所以程序会出错。

请改用if...else写:

//-----------------------------------------------