本帖最后由 jackz007 于 2019-11-11 12:00 编辑
首先,更正一个错误,根据楼主的描述,成绩分段情况如下:
90 ~ 100 :A
81 ~ 89 :B
70 ~ 79 :C
60 ~ 69 :D
0 ~ 59 :E
这样分段显然是有问题的,因为,一方面,分段没有闭合,导致分数 80 被遗漏;另一方面,各个段的划分原则不一致,明显不合理。所以,正确的分法应该是:
90 ~ 100 :A
80 ~ 89 :B
70 ~ 79 :C
60 ~ 69 :D
0 ~ 59 :E
如果这样修改是正确的,那么
以下代码是 if ... else 版本:#include <stdio.h>
int main(void)
{
int n ;
printf("\tEnter your score : ") ;
scanf ("%d" , & n) ;
if(n >= 0 && n <= 100) {
if(n >= 90) printf("\tCLASS A\n") ;
else if(n >= 80 && n < 90) printf("\tCLASS B\n") ;
else if(n >= 70 && n < 80) printf("\tCLASS C\n") ;
else if(n >= 60 && n < 70) printf("\tCLASS D\n") ;
else printf("\tCLASS E\n") ;
} else {
printf("\tundesired value\n") ;
}
return 0 ;
}
以下代码是 switch ... case 版本#include <stdio.h>
int main(void)
{
int n ;
printf("\tEnter your score : ") ;
scanf ("%d" , & n) ;
switch(n / 10) {
case 10:
switch(n % 10) {
case 0:
printf("\tclass A\n") ;
break ;
default:
printf("\tundesired value\n") ;
}
break ;
case 9:
printf("\tclass A\n") ;
break ;
case 8:
printf("\tclass B\n") ;
break ;
case 7:
printf("\tclass C\n") ;
break ;
case 6:
printf("\tclass D\n") ;
break ;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
printf("\tclass E\n") ;
break ;
default:
printf("\tundesired value\n") ;
}
return 0 ;
}
以上代码请楼主测试 |