求各位大佬帮忙看看这一题的编码错在哪里?此为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");
} 还有这个题,是接着上面那个题的,不知这一题出错在哪里。
#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;
}
else if (60<=n&&<=69)————少了个n。
case后面是分号不是冒号,错一句也就算了,你还一整个switch语句全错 像这种错误编译器都会提示的 bin554385863 发表于 2019-11-11 02:24
像这种错误编译器都会提示的
新手刚入c语言,有很多还没看懂呢
本帖最后由 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 09:16
新手刚入c语言,有很多还没看懂呢
萌新表示真的看不懂 jackz007 发表于 2019-11-11 11:46
首先,更正一个错误,根据楼主的描述,成绩分段情况如下:
90 ~ 100 :A
81 ~89 :B
谢谢大哥,会啦会啦
我还想问一下这个 \t 是干什么用的呀
请问那个case5: case4:case3: .....为什么要空着呀?
页:
[1]