配色: 字号:
分数等级的经典程序
2015-09-13 | 阅:  转:  |  分享 
  
#include

intmain()

{

intscore;

printf("Enterascore:");

scanf("%d",&score);

if(score>100||score<0)

printf("不要过于自信,也不能太自卑!\n");

elseif(score>=90)

printf("非常优秀!\n");

elseif(score>=80)

printf("优秀!\n");

elseif(score>=70)

printf("良好!");

elseif(score>=60)

printf("及格!\n");

else

printf("不要灰心,请继续努力!\n");



return0;

}

/这个题目很简单,但是出现过很多错误或是不规范的地方:

1.有些人可能会这样写:if(90=
这样写的后果就是只要分数在0到100之间(包括0和100)都会输出非常优秀。原因是执行socre>=90

当输入分数大于或等于90时其值为1,输入分数小于90时其值为0,但1或0<=100都是真,故不管输入

什么分数,都会输出非常优秀。

2.还有些人会这样写if(score>=90&&score<=100),if(score>=80&&score<90)等等,这样写虽然是对的,

但是略显不规范,有ifelse不用。

3.还有一些人会这样写,elseif(score>=90&&score<=100)elseif(score>=80&&score<90)等等,

这样写说明同学们对if,ifelse,else的用法认识有误。因为在elseif中不需要分数小于或等于100,

如果分数大于100,根本就不执行elseif,即当if成立时根本就不会执行elseif,也就是说已经进入判断

score>=90,说明score<=100是必然的,故elseif后面不需要score<=100。后面的elseif道理是一样的

/
献花(0)
+1
(本文系福爷专属首藏)