C语言学生考试成绩可用百分制和等级制两种表示方式,编写程序实现两种成绩的互相转换,要求分别用else if级联和switch语句实现。 (1) 输入成绩等级{A,B,C,D,E},输出相应百分制的分数段。 (2) 输入百分制的分数,输出相应成绩等级{A, B,C,D,E}。
时间: 2024-10-21 21:08:34 浏览: 105
为了实现这个功能,我们可以编写两个函数,一个用于从等级转换到百分制,另一个用于从百分制转换到等级。这里我会分别展示如何用`if-else if`链式结构以及`switch`语句来完成这两个任务。
首先,我们使用`if-else if`:
```c
#include <stdio.h>
#include <string.h>
// 将等级转换为百分制分数
int grade_to_percentage(char grade) {
if (strcmp(grade, "A") == 0)
return 90;
else if (strcmp(grade, "B") == 0)
return 80;
else if (strcmp(grade, "C") == 0)
return 70;
else if (strcmp(grade, "D") == 0)
return 60;
else if (strcmp(grade, "E") == 0)
return 50; // 或者设置为0或其他较低分,取决于你的理解
else
return -1; // 表示输入错误
}
// 主函数测试等级转百分比
void test_grade_to_percentage() {
char grade;
printf("请输入等级(A-E): ");
scanf("%s", &grade);
int percentage = grade_to_percentage(grade);
if (percentage != -1)
printf("百分制分数: %d\n", percentage);
else
printf("无效的成绩等级。\n");
}
// 使用类似的方法编写将百分制转换为等级的`percentage_to_grade`函数
int main() {
test_grade_to_percentage();
return 0;
}
```
接下来,我们使用`switch`语句:
```c
#include <stdio.h>
#include <string.h>
char percentage_to_grade(int percentage) {
switch (percentage) {
case 90...100: return 'A';
case 80...89: return 'B';
case 70...79: return 'C';
case 60...69: return 'D';
default: return 'E'; // 如果百分制分数低于60,则为'E'
}
}
// 测试百分制转等级
void test_percentage_to_grade() {
int score;
printf("请输入百分制分数: ");
scanf("%d", &score);
char grade = percentage_to_grade(score);
printf("成绩等级: %c\n", grade);
}
int main() {
test_percentage_to_grade();
return 0;
}
```
阅读全文