对switch语句不太理解,请求老师指点

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:47:13
在家看书,对这个语句老是不理解
现有一题目:
(给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。90分以上的‘A’,80~89分的为‘B’,70~79分的‘C’,60~69分的‘D’,60分以下的为‘E’。)
我原本按自己的理解做的是:
#include <stdio.h>
void main()
{
int n;
printf("please input a number:");
scanf("%d",&n);
switch(n)
{
case(n>=90):printf("A"\n);break;
case(n>=80):printf("B"\n);break;
case(n>=70):printf("C"\n);break;
case(n>=60):printf("D"\n);break;
case(n<60):printf("E"\n");break;
default:printf("error\n");
}
printf("\n");
}
但是被指出是SWITCH用错了。
但是我理解能力比较差,还是不知道该怎么改,麻烦一位老师用SWITCH语句帮我做出这个题目,帮住的理解!万分感谢!
谢谢下面那位对我的帮助,尽管还是有错误,但是经过借鉴,我做出了正确答案:
#include <stdio.h>
void main()
{
int s,c;
scanf("%d",&s);
if(s>=90&&s<=100)
c=10;
else
c=s/

case标签必须是常量表达式,所以不能用n>=90这种表达式
#include <stdio.h>
void main()
{
int n;
printf("please input a number:");
scanf("%d",&n);
switch(n/10)
{
case 10:printf("A"\n);break;
case 9:printf("A"\n);break;
case 8:printf("B"\n);break;
case 7:printf("C\n);break;
case 6:printf("D"\n);break;
case 5:printf("E"\n);break;
case 4:printf("E"\n);break;
case 3:printf("E"\n);break;
case 2:printf("E"\n);break;
case 1:printf("E"\n);break;
case 0:printf("E"\n);break;
default:printf("error\n");
}
printf("\n");
}