鱼C论坛

 找回密码
 立即注册
查看: 2406|回复: 9

[已解决]求各位大佬帮忙看看这一题的编码错在哪里?此为If else函数

[复制链接]
发表于 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 版本:
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.         int n                                                    ;
  5.         printf("\tEnter your score : ")                          ;
  6.         scanf ("%d" , & n)                                       ;
  7.         if(n >= 0 && n <= 100) {
  8.                 if(n >= 90) printf("\tCLASS A\n")                ;
  9.                 else if(n >= 80 && n < 90) printf("\tCLASS B\n") ;
  10.                 else if(n >= 70 && n < 80) printf("\tCLASS C\n") ;
  11.                 else if(n >= 60 && n < 70) printf("\tCLASS D\n") ;
  12.                 else printf("\tCLASS E\n")                       ;
  13.         } else {
  14.                 printf("\tundesired value\n")                    ;
  15.         }
  16.         return 0                                                 ;
  17. }
复制代码

        以下代码是 switch ... case 版本
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.         int n                                                         ;
  5.         printf("\tEnter your score : ")                               ;
  6.         scanf ("%d" , & n)                                            ;
  7.         switch(n / 10) {
  8.                 case 10:
  9.                         switch(n % 10) {
  10.                                 case  0:
  11.                                         printf("\tclass A\n")         ;
  12.                                         break                         ;
  13.                                 default:
  14.                                         printf("\tundesired value\n") ;
  15.                         }
  16.                         break                                         ;
  17.                 case  9:
  18.                         printf("\tclass A\n")                         ;
  19.                         break                                         ;
  20.                 case  8:
  21.                         printf("\tclass B\n")                         ;
  22.                         break                                         ;
  23.                 case  7:
  24.                         printf("\tclass C\n")                         ;
  25.                         break                                         ;
  26.                 case  6:
  27.                         printf("\tclass D\n")                         ;
  28.                         break                                         ;
  29.                 case  5:
  30.                 case  4:
  31.                 case  3:
  32.                 case  2:
  33.                 case  1:
  34.                 case  0:
  35.                         printf("\tclass E\n")                         ;
  36.                         break                                         ;
  37.                 default:
  38.                         printf("\tundesired value\n")                 ;
  39.         }
  40.         return 0                                                      ;
  41. }
复制代码

        以上代码请楼主测试
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-4-1 12:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表