C语言中设计一个程序,用复合i语句实现由键盘输入一个成绩,输出该成绩的等级。其中90~100分为优秀,80~ 89分为良好,70~79分为中等,60~69分为及格,60分以下为不及格。如果成绩不在0~100之间则输出错误信息。
时间: 2024-10-16 15:10:42 浏览: 9
在C语言中,你可以通过编写一个简单的控制台程序来实现这个功能。首先,我们需要创建一个while循环来持续获取用户的输入,直到输入有效的成绩为止。以下是代码的一个示例:
```c
#include <stdio.h>
void printGrade(int score) {
if (score >= 90 && score <= 100) {
printf("成绩: %d, 等级: 优秀\n", score);
} else if (score >= 80 && score < 90) {
printf("成绩: %d, 等级: 良好\n", score);
} else if (score >= 70 && score < 80) {
printf("成绩: %d, 等级: 中等\n", score);
} else if (score >= 60 && score < 70) {
printf("成绩: %d, 等级: 及格\n", score);
} else if (score >= 0 && score < 60) {
printf("成绩: %d, 等级: 不及格\n", score);
} else {
printf("错误: 成绩不在0到100之间\n");
}
}
int main() {
int score;
while (1) {
printf("请输入成绩(0~100之间)或输入q退出: ");
char input[5];
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 移除换行符
if (input[0] == 'q' || strcmp(input, "q") == 0) { // 判断是否退出
break;
}
if (sscanf(input, "%d", &score) != 1) { // 检查输入是否为整数
printf("错误: 输入无效,请输入整数。\n");
continue;
}
printGrade(score);
}
return 0;
}
```
在这个程序中,我们首先定义了一个`printGrade`函数来处理等级判断,然后在主函数里使用无限循环等待用户输入,检查输入的有效性和范围。当用户输入有效成绩并选择退出时,程序才会结束。
阅读全文