3. 输入一个0到100的百分制成绩,转换成五级制A、B、C、D和E。程序中首先需要对输入的数进行合法性检查,对小于0和大于100的数要有提示,然后转换部分使用switch语句实现。
时间: 2024-03-15 10:46:46 浏览: 112
好的,下面是解决您的问题的代码:
```c
#include <stdio.h>
int main() {
int score;
printf("请输入一个0到100的百分制成绩:");
scanf("%d", &score);
if (score < 0 || score > 100) { // 判断输入是否合法
printf("输入不合法,请输入一个0到100的百分制成绩!\n");
return 0;
}
int level = (score >= 90) ? 1 : (score >= 80 ? 2 : (score >= 70 ? 3 : (score >= 60 ? 4 : 5))); // 计算成绩等级
switch (level) {
case 1:
printf("成绩等级为A\n");
break;
case 2:
printf("成绩等级为B\n");
break;
case 3:
printf("成绩等级为C\n");
break;
case 4:
printf("成绩等级为D\n");
break;
case 5:
printf("成绩等级为E\n");
break;
default:
printf("未知错误!\n");
break;
}
return 0;
}
```
在这段代码中,我们首先输入一个成绩,然后判断它是否合法。如果不合法,程序会输出提示信息并结束。接着,我们根据成绩计算出成绩等级,然后使用 `switch` 语句根据等级输出相应的字母等级。
需要注意的是,上面的代码使用了三元运算符来计算成绩等级,这比使用嵌套的 `if-else` 语句更为简洁。
希望这个回答能够解决您的问题。如果您还有其他问题,请随时问我。
阅读全文