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

给出一个百分制成绩,要求输出成绩等级
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;
}
}

如下:


#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)。

 {。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-31
scanf()函数中没有精度控制。
scanf("%.2f",&m); 是非法的。不能企图用此语句输入小数为2位的实数。

改为scanf("%f",&m);
第2个回答  2012-01-31
switch ((int)m/10)
改成switch ((int)(m/10))看看本回答被提问者采纳
第3个回答  2012-01-31
int tmp=(int)m;
switch((tm-tmp%10)/10)