题目:

<stdio.h> 2 main () 3 { 4 int a; 5 scanf("%d", &a); 6 if(a<0 || a>100) 7 printf("No answer\n"); 8 else if(a>=90) printf("A\n"); 9 else if(a<=89 && a>=80) printf("B\n"); 10 else if(a<=79 && a>=70) printf("C\n"); 11 else if(a<=69 && a>=60) printf("D\n"); 12 else printf("E\n"); 13 return 0; 14 }

问题在于,没有采用正确的缩进方式。这样一来,第九行的else对应的是第八行的if还是第六行的if呢?正确的理解是:第九行的else对应第八行的if,但是第九行没有正确地缩进,由此,从文本形式上,很容易让人误解为:第九行的else对应第六行的if。同样的道理,既然第七行是来新的一行,那为啥你不把第八行分成两行呢?

更好的缩进方式可以参考如下:

0001 #include<stdio.h>
0002 main ()
0003 {
0004     int a;
0005     scanf("%d", &a);
0006     if(a<0 || a>100) printf("No answer\n");
0007     else
0008         if(a>=90) printf("A\n");
0009         else
0010             if(a<=89 && a>=80) printf("B\n");
0011             else
0012                 if(a<=79 && a>=70) printf("C\n");
0013                 else
0014                     if(a<=69 && a>=60) printf("D\n");
0015                     else printf("E\n");
0016     return 0;
0017 }

上例中,每次缩进4个空格;而且很容易就从形式上分辨出哪个if对应着哪个else。
以此为例,给大家参考。

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-20
  • 2021-07-30
  • 2021-05-13
  • 2021-04-10
  • 2021-12-24
  • 2021-06-23
相关资源
相似解决方案