输入一百分制成绩,输出成绩等级A、B、C、D、E。90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。要求程序能处理错误的输入数据。用switch语句实现。
时间: 2024-11-09 19:23:07 浏览: 106
在C语言中,你可以使用switch语句结合if条件来实现这个功能,同时还需要考虑处理非数字输入的情况。以下是一个示例程序:
```c
#include <stdio.h>
void grade_distribution(int score) {
char grade;
if (score < 0 || score > 100) { // 检查输入是否合法
printf("错误的输入!分数必须在0至100之间。\n");
return;
}
switch (score / 10) {
case 10:
grade = 'A';
break;
case 9:
grade = 'A';
// 因为这里没有case 90-100,所以直接跳到下一个case
// 可以加上break避免进入下面的case,防止错误覆盖
case 8:
grade = 'B';
break;
case 7:
grade = 'C';
break;
case 6:
grade = 'D';
break;
default:
grade = 'E'; // 60分以下
break;
}
printf("成绩等级: %c\n", grade);
}
int main() {
int score;
printf("请输入成绩(0-100分): ");
if (scanf("%d", &score) == 1) { // 判断读取是否成功
grade_distribution(score);
} else {
printf("无效输入,只接受整数。\n");
}
return 0;
}
阅读全文