搜索
查看: 1551|回复: 3
打印 上一主题 下一主题

输入成绩,输出等级,求解

[复制链接]
跳转到指定楼层
楼主
发表于 2013-3-21 14:46:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
main()
{
float num;
char grade;
scanf("%d",&num);
if(num>=90) grade='A';
else if(num>=80&&num<89) grade='B';
else if(num>=70&&num<79) grade='C';
else if(num>=60&&num<69) grade='D';
else grade='E';
printf("%c",grade);
    Sleep(10000);
return(0);
}
编译后 输入任何成绩都显示E,为毛这样。。。求解

最佳答案

查看完整内容

现在的分数似乎没有小数了吧,所以帮你把num的类型改成int了。 另外既然用else if了,条件就不用再&&这么复杂了。况且你的源程序中把89,79,69给整没了,若输入这几个数当然只能是E。现在这段代码我运行后试了几个能正确显示等级。
沙发
发表于 2013-3-21 14:46:49 | 只看该作者
  1. #include <stdio.h>

  2. int main(int argc, char *argv[])
  3. {
  4.         int num;
  5.         char grade;
  6.         scanf("%d",&num);
  7.         if(num>=90) grade='A';
  8.         else if(num>=80) grade='B';
  9.         else if(num>=70) grade='C';
  10.         else if(num>=60) grade='D';
  11.         else grade='E';
  12.         printf("%c",grade);
  13.         return 0;
  14. }
复制代码
现在的分数似乎没有小数了吧,所以帮你把num的类型改成int了。
另外既然用else if了,条件就不用再&&这么复杂了。况且你的源程序中把89,79,69给整没了,若输入这几个数当然只能是E。现在这段代码我运行后试了几个能正确显示等级。
板凳
发表于 2013-3-21 15:42:17 | 只看该作者
num你定义的是浮点数,scanf中要用%f   例如 scanf("%f",&num);   这样就对了

点评

搞定了,谢谢你  发表于 2013-3-21 16:44
地板
发表于 2013-3-21 15:43:52 | 只看该作者
还有个需要改进的,69 79 89 都没有明确,你输入这几个数,直接显示E了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表