啊哈磊_编程从这里起步
标题:
输入成绩,输出等级,求解
[打印本页]
作者:
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
#include <stdio.h>
int main(int argc, char *argv[])
{
int num;
char grade;
scanf("%d",&num);
if(num>=90) grade='A';
else if(num>=80) grade='B';
else if(num>=70) grade='C';
else if(num>=60) grade='D';
else grade='E';
printf("%c",grade);
return 0;
}
复制代码
现在的分数似乎没有小数了吧,所以帮你把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