|
|
发表于 2019-11-11 11:46:08
|
显示全部楼层
本楼为最佳答案
本帖最后由 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 ;
- }
复制代码
以上代码请楼主测试 |
|