基于c语言实现输入一个百分制成绩,要求输出成绩等级。若输入分数在90~100之间,则输出“A”; 若输入分数在80~89之间,输出“B”; 若输入分数在70~79之间,输出“C”; 若输入分数在60~69之间,输出“D”, 若输入分数小于60,输出“E”,如果输入的不是百分制成绩,则输出“Data error”。的代码
时间: 2023-05-19 17:03:30 浏览: 164
以下是基于C语言实现输入一个百分制成绩,要求输出成绩等级的代码:
```
#include <stdio.h>
int main() {
float score;
printf("请输入百分制成绩:");
scanf("%f", &score);
if (score < 0 || score > 100) {
printf("Data error");
} else if (score >= 90 && score <= 100) {
printf("A");
} else if (score >= 80 && score <= 89) {
printf("B");
} else if (score >= 70 && score <= 79) {
printf("C");
} else if (score >= 60 && score <= 69) {
printf("D");
} else {
printf("E");
}
return 0;
}
```
相关问题
从终端读入一个百分制整数。依据如下方式判断其成绩等级。90~100分段,判为优秀;70~89分段,判为良好;60~69,判为及格;60分以下,判为不及格;其它分数段,判为输入错误。要求用 switch/case 语句实现。
在使用switch/case语句实现成绩等级判断时,可以利用switch语句中的case范围匹配功能。但需要注意,标准的switch/case语法并不直接支持范围判断,因此需要一种变通的方法来实现。一种常见的做法是先将分数转换为一个分类值,然后基于这个分类值来进行case判断。
以下是一个用switch/case语句实现的示例代码,假设使用C语言:
```c
#include <stdio.h>
int main() {
int score;
char grade;
// 从终端读入一个百分制整数
printf("请输入一个百分制整数:");
scanf("%d", &score);
// 判断输入是否有效
if (score < 0 || score > 100) {
printf("输入错误\n");
return 0;
}
// 将分数转换为分类值,这里使用了一个技巧:(score / 10) % 11
// 使得:
// 0 <= score < 90时,转换结果为0
// 90 <= score <= 100时,转换结果为1
switch ((score / 10) % 11) {
case 1: // 90~100分
grade = '优';
break;
case 0: // 0~89分
if (score >= 70) {
grade = '良';
} else if (score >= 60) {
grade = '及';
} else {
grade = '不';
}
break;
default:
grade = '?';
break;
}
// 输出成绩等级
switch (grade) {
case '优':
printf("成绩等级:优秀\n");
break;
case '良':
printf("成绩等级:良好\n");
break;
case '及':
printf("成绩等级:及格\n");
break;
case '不':
printf("成绩等级:不及格\n");
break;
default:
printf("输入错误\n");
break;
}
return 0;
}
```
在这段代码中,首先通过输入获取分数,然后判断分数的有效性。接着,通过 `(score / 10) % 11` 的计算将原始分数转换为一个分类值,然后用switch语句进行分类判断。最后,再通过switch语句输出对应的成绩等级。
阅读全文