啊哈磊_编程从这里起步

标题: 输入成绩,输出等级,求解 [打印本页]

作者: mkb0330    时间: 2013-3-21 14:46
标题: 输入成绩,输出等级,求解
#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,为毛这样。。。求解


作者: Smallbee    时间: 2013-3-21 14:46
  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。现在这段代码我运行后试了几个能正确显示等级。
作者: jess2013    时间: 2013-3-21 15:42
num你定义的是浮点数,scanf中要用%f   例如 scanf("%f",&num);   这样就对了
作者: jess2013    时间: 2013-3-21 15:43
还有个需要改进的,69 79 89 都没有明确,你输入这几个数,直接显示E了




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2