(2)给出一个百分制成绩,要求输出成绩等级A、B、C、D、E.90分以上为A,80~8 为B,70~79分为C,60~69分为D,60分以下为E,当输入成绩大于100或者小于0时 知用户输入数据错误。 要求:分别用if语句和switch语句实现.
时间: 2024-10-20 11:10:07 浏览: 20
首先,我们使用 if 语句来实现这个需求:
```c
#include <stdio.h>
#include <string.h>
void gradeByIf(int score) {
char grade[5];
if (score > 100 || score < 0) {
strcpy(grade, "输入错误");
} else if (score >= 90) {
strcpy(grade, "A");
} else if (score >= 80 && score < 90) {
strcpy(grade, "B");
} else if (score >= 70 && score < 80) {
strcpy(grade, "C");
} else if (score >= 60 && score < 70) {
strcpy(grade, "D");
} else {
strcpy(grade, "E");
}
printf("成绩等级为:%s\n", grade);
}
int main() {
int score;
printf("请输入成绩(0-100):");
scanf("%d", &score);
gradeByIf(score);
return 0;
}
```
接下来,我们使用 switch 语句实现相同的功能:
```c
#include <stdio.h>
void gradeBySwitch(int score) {
char grade[5] = "未知";
switch (score) {
case 100:
case 99:
strcpy(grade, "A");
break;
case 89:
case 98:
case 88:
case 97:
strcpy(grade, "B");
break;
case 79:
case 87:
case 86:
case 95:
strcpy(grade, "C");
break;
case 69:
case 78:
case 85:
case 94:
strcpy(grade, "D");
break;
default:
if (score >= 0 && score < 60) {
strcpy(grade, "E");
} else {
strcpy(grade, "输入错误");
}
break;
}
printf("成绩等级为:%s\n", grade);
}
int main() {
int score;
printf("请输入成绩(0-100):");
scanf("%d", &score);
gradeBySwitch(score);
return 0;
}
```
这两种方法都根据分数区间判断并设置对应的等级。如果输入了不在指定范围内的分数,则提示“输入错误”。
阅读全文