程序设计:完成成绩类别的转换。 (1) 求任意一个分数(5分制)对应等级。 1: A、2: B、3: C、4: D、5: E (2) 求任意一个分数(百分制)对应等级。 90~100: A, 80~89:B, 70~79: C, 60~69: D, 0~59: E
时间: 2024-11-05 13:24:26 浏览: 4
在C语言中,可以创建一个枚举来定义成绩类别,然后使用条件语句进行转换。这里给出一个简单的示例:
```c
// 定义分数等级的枚举
enum Grade {
Grade_A = 5,
Grade_B = 4,
Grade_C = 3,
Grade_D = 2,
Grade_E = 1
};
// 转换5分制分数到等级
int convert_to_letter_grade(int points, enum Grade *scale) {
if (points >= 5) {
*scale = Grade_A;
} else if (points >= 4) {
*scale = Grade_B;
} else if (points >= 3) {
*scale = Grade_C;
} else if (points >= 2) {
*scale = Grade_D;
} else {
*scale = Grade_E;
}
return *scale;
}
// 示例
int main(void) {
int score_5_point = 3; // 假设这是5分制分数
enum Grade letterGrade;
convert_to_letter_grade(score_5_point, &letterGrade);
printf("5分制分数 %d 对应等级为: %d (%s)\n", score_5_point, letterGrade, enum_name(letterGrade)); // 使用枚举名代替数字
// 类似地,对于百分制转换
enum Grade percentGrade;
int score_percent = 85; // 假设这是百分制分数
convert_to_letter_grade((score_percent / 100), &percentGrade);
printf("百分制分数 %.0f 对应等级为: %d (%s)\n", score_percent, percentGrade, enum_name(percentGrade));
return 0;
}
```
在这个示例中,`convert_to_letter_grade`函数接收分数并返回相应的等级。`enum_name`函数是一个假设存在的辅助函数,用于获取枚举的名称以便于打印。
阅读全文