给出一个百分制成绩,要求输出成绩等级 90分(含90分,以下同)以上为A 80分以上为B 70分以上为C 60分以上

给出一个百分制成绩,要求输出成绩等级90分(含90分,以下同)以上为A80分以上为B70分以上为C60分以上为D其他为E。Input行1:一个浮点数m,m∈[100,0]... 给出一个百分制成绩,要求输出成绩等级
90分(含90分,以下同)以上为A
80分以上为B
70分以上为C
60分以上为D
其他为E。

Input
行1:一个浮点数m,m∈[100,0],小数点后最多2位

Output
行1:相应等级

以下是我写的程序,为什么是错误答案?
#include <stdio.h>
main()
{
float m;
scanf("%.2f",&m);
switch ((int)m/10)
{
case 10:
case 9: printf("A\n");
break;
case 8: printf("B\n");
break;
case 7 : printf("C\n");
break;
case 6: printf("D\n");
break;
default: printf("E\n");
break;
}
}
展开
 我来答
蓝雪儿老师
高能答主

2021-10-20 · 愿千里马,都找到自己的伯乐!
蓝雪儿老师
采纳数:266 获赞数:85214

向TA提问 私信TA
展开全部

如下:


#include <stdio.h>。

int main()。

{。

 int s。

 printf("请输入一个成绩:")。

 scanf("%d", &s)。

 if(s>100 || s < 0)。

 {。

 printf("输入了一个错误的成绩。\n")。

 return 1。

 }。

 char ch。

 switch(s/10)。

 {。

匿名用户
2012-01-31
展开全部
scanf()函数中没有精度控制。
scanf("%.2f",&m); 是非法的。不能企图用此语句输入小数为2位的实数。

改为scanf("%f",&m);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a6388578
2012-01-31 · 超过35用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:85.9万
展开全部
switch ((int)m/10)
改成switch ((int)(m/10))看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-01-31
展开全部
int tmp=(int)m;
switch((tm-tmp%10)/10)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式