秦九域 发表于 2019-11-11 01:59:33

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

① 2.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。
① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。



#include <stdio.h>
void main()
{ int n;
scanf ("%d",&n);

   if(n>90);
   printf ("A");
   else if (81<=n&&n<=89)
      printf("B");
        else if (70<=n&&n<=79)
          printf("C");
        else if (60<=n&&<=69)
          printf ("D");
        else if (n<60)
          printf ("E");
        else printf("undesired value");   
             
}

秦九域 发表于 2019-11-11 02:14:15

还有这个题,是接着上面那个题的,不知这一题出错在哪里。

#include<stdio.h>
void main()

{
       int g.score;
       scanf ("%d",&g);
        printf ("your grade rank is;");
       g=score/10;
       switch(p)
       {
               case 9;printf("A\n");break;
         case 8;printf("B\n");break;
               case 7;printf("C\n");break;
         case 6;printf("D\n");break;
                   default ;printf("E\n");break;
       }


bin554385863 发表于 2019-11-11 02:23:33

else if (60<=n&&<=69)————少了个n。
case后面是分号不是冒号,错一句也就算了,你还一整个switch语句全错

bin554385863 发表于 2019-11-11 02:24:23

像这种错误编译器都会提示的

秦九域 发表于 2019-11-11 09:16:45

bin554385863 发表于 2019-11-11 02:24
像这种错误编译器都会提示的

新手刚入c语言,有很多还没看懂呢

jackz007 发表于 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) {
                              case0:
                                        printf("\tclass A\n")         ;
                                        break                         ;
                              default:
                                        printf("\tundesired value\n") ;
                        }
                        break                                       ;
                case9:
                        printf("\tclass A\n")                         ;
                        break                                       ;
                case8:
                        printf("\tclass B\n")                         ;
                        break                                       ;
                case7:
                        printf("\tclass C\n")                         ;
                        break                                       ;
                case6:
                        printf("\tclass D\n")                         ;
                        break                                       ;
                case5:
                case4:
                case3:
                case2:
                case1:
                case0:
                        printf("\tclass E\n")                         ;
                        break                                       ;
                default:
                        printf("\tundesired value\n")               ;
      }
      return 0                                                      ;
}
      以上代码请楼主测试

秦九域 发表于 2019-11-11 23:30:00

秦九域 发表于 2019-11-11 09:16
新手刚入c语言,有很多还没看懂呢

萌新表示真的看不懂

秦九域 发表于 2019-11-11 23:33:57

jackz007 发表于 2019-11-11 11:46
首先,更正一个错误,根据楼主的描述,成绩分段情况如下:
90 ~ 100 :A
81 ~89 :B


谢谢大哥,会啦会啦

秦九域 发表于 2019-11-12 00:05:53

我还想问一下这个    \t      是干什么用的呀

秦九域 发表于 2019-11-12 00:55:11

请问那个case5:   case4:case3:   .....为什么要空着呀?
页: [1]
查看完整版本: 求各位大佬帮忙看看这一题的编码错在哪里?此为If else函数