关于一道C语言题目

给出一百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C',60~69分为‘D’,60分一下... 给出一百分制成绩,要求输出成绩等级‘A’,‘B’,‘C’,‘D’,‘E’。90分以上为‘A’,80~89分为‘B’,70~79分为‘C',60~69分为‘D’,60分一下为‘E‘。
我的做法为:
#include<stdio.h>
int main()
{
float score;
char grade;
scanf("%f",&score);
while(score>100||score<0)
{printf("\n输入有错,请重新输入!");
scanf("%f",&score);
}
switch(int(score/10))
{
case 10:
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';break;
}
检查出来的错误为:

C:\Users\Pro\Desktop\2.c(11) : error C2059: syntax error : 'type'
C:\Users\Pro\Desktop\2.c(14) : error C2043: illegal break
C:\Users\Pro\Desktop\2.c(15) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(15) : error C2043: illegal break
C:\Users\Pro\Desktop\2.c(16) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(16) : error C2043: illegal break
C:\Users\Pro\Desktop\2.c(17) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(17) : error C2043: illegal break
C:\Users\Pro\Desktop\2.c(18) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(19) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(20) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(21) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(22) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(23) : error C2046: illegal case
C:\Users\Pro\Desktop\2.c(23) : error C2043: illegal break
执行 cl.exe 时出错.
请帮忙看一下,谢谢!
展开
 我来答
匿名用户
2014-08-07
展开全部
switch ((int)(score / 10))

C语言强制转换的形式规定 ,形式为: (类型说明符) (表达式)
追问
还真是,可是为什么呢
追答
人家就这么规定的啊
笃侠6A
2014-08-07 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3267万
展开全部
switch(int(score/10))
改为
switch((int)(score/10))
试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梁昌仔
2014-08-07 · TA获得超过272个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:203万
展开全部
switch case只能是整型为字符变量,你是float肯定不行啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小菜458
2014-08-07
知道答主
回答量:7
采纳率:0%
帮助的人:8223
展开全部
有两处错误
1.switch(int(score/10))改为switch((int)score/10)
2.在最后面掉了一个属于main()的"}"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hy__345
2014-08-07 · 贡献了超过157个回答
知道答主
回答量:157
采纳率:0%
帮助的人:34.4万
展开全部
把int(score/10)改为(int)(score/10)
追问
还真是,可是为什么呢
追答
强转的语法是(转换后的类型)原表达式
具体百度~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
YY天命难违YY
2014-08-07
知道答主
回答量:1
采纳率:0%
帮助的人:1348
展开全部
最后少一个大括号,case应该printf出来,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式