.给出一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,81-89分为B,70-79分为C,60-69分为D,60分以下为E。 ① 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。 ② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据:当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。
时间: 2024-02-13 19:07:47 浏览: 63
① 使用if语句实现:
```c
#include <stdio.h>
int main() {
int score;
char level;
printf("请输入百分制成绩:");
scanf("%d", &score);
if (score < 0 || score > 100) { // 输入数据错误
printf("输入数据错误\n");
return 0;
}
if (score >= 90) {
level = 'A';
} else if (score >= 81) {
level = 'B';
} else if (score >= 70) {
level = 'C';
} else if (score >= 60) {
level = 'D';
} else {
level = 'E';
}
printf("成绩等级为:%c\n", level);
return 0;
}
```
使用switch语句实现:
```c
#include <stdio.h>
int main() {
int score;
char level;
printf("请输入百分制成绩:");
scanf("%d", &score);
if (score < 0 || score > 100) { // 输入数据错误
printf("输入数据错误\n");
return 0;
}
switch (score / 10) {
case 10:
case 9:
level = 'A';
break;
case 8:
level = 'B';
break;
case 7:
level = 'C';
break;
case 6:
level = 'D';
break;
default:
level = 'E';
break;
}
printf("成绩等级为:%c\n", level);
return 0;
}
```
② 修改后的程序:
```c
#include <stdio.h>
int main() {
int score;
char level;
printf("请输入百分制成绩:");
scanf("%d", &score);
if (score < 0 || score > 100) { // 输入数据错误
printf("输入数据错误\n");
return 0;
}
if (score >= 90) {
level = 'A';
} else if (score >= 81) {
level = 'B';
} else if (score >= 70) {
level = 'C';
} else if (score >= 60) {
level = 'D';
} else if (score >= 0) { // 分数为负数时不输出等级
level = 'E';
}
printf("成绩等级为:%c\n", level);
return 0;
}
```
阅读全文