编写程序实现,用户输入百分制成绩,将其转换成等级分数(A,B,C,D.E)并输出,如果不在0到100范围 内,输出“成绩有误”。 90<=成绩<=100:A 80<=成绩<=89:B 70<=成绩<=
时间: 2025-01-10 08:15:41 浏览: 78
成绩<=79:C 60<=成绩<=69:D 59分以下:E
下面是一个简单的Python程序,实现了这个功能:
```python
def convert_grade(score):
if not isinstance(score, int) or score < 0 or score > 100:
return "成绩有误"
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
return f"成绩{score}对应的等级是{grade}"
# 获取用户输入
user_score = input("请输入您的百分制成绩:")
try:
score = int(user_score)
result = convert_grade(score)
print(result)
except ValueError:
print("输入错误,请输入一个整数。")
```
在这个程序中,首先检查输入是否为有效整数。然后根据给定的条件判断等级,并返回相应的结果。如果输入不是有效的百分制成绩(非整数或超出范围),则输出相应提示。
相关问题
C语言学生考试成绩可用百分制和等级制两种表示方式,编写程序实现两种成绩的互相转换,要求分别用else if级联和switch语句实现。 (1) 输入成绩等级{A,B,C,D,E},输出相应百分制的分数段。 (2) 输入百分制的分数,输出相应成绩等级{A, B,C,D,E}。
为了实现这个功能,我们可以编写两个函数,一个用于从等级转换到百分制,另一个用于从百分制转换到等级。这里我会分别展示如何用`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;
}
```
学生考试成绩可用百分制和等级制两种表示方式,编写程序实现两种成绩的互相转换,要求分别用else if级联和switch语句实现。 (1) 输入成绩等级{A,B,C,D,E},输出相应百分制的分数段。 (2) 输入百分制的分数,输出相应成绩等级{A, B,C,D,E}。
在Python中,我们可以创建两个函数来实现这个需求,一个用于等级制转百分制,另一个用于百分制转等级制。这里提供两个示例,一个是使用`if-elif`条件判断结构,另一个是使用`switch-case`模拟的`switch`语句(虽然Python本身不支持原生的`switch`关键字,但我们可以通过字典映射来实现类似功能)。
**使用`if-elif`级联实现:**
```python
def grade_to_percentage(grade):
if grade == 'A':
return 90
elif grade == 'B':
return 80
elif grade == 'C':
return 70
elif grade == 'D':
return 60
else: # E
return 50
def percentage_to_grade(percentage):
if percentage >= 90:
return 'A'
elif percentage >= 80:
return 'B'
elif percentage >= 70:
return 'C'
elif percentage >= 60:
return 'D'
else: # 50 or below
return 'E'
# 示例
grade = input("请输入成绩等级:")
print(f"百分制分数:{percentage_to_grade(grade)}")
percentage = int(input("请输入百分制分数:"))
print(f"成绩等级:{grade_to_percentage(percentage)}")
```
**使用字典模拟`switch`实现(Python版):**
```python
def grade_to_percentage(grade):
grades_dict = {'A': 90, 'B': 80, 'C': 70, 'D': 60, 'E': 50}
return grades_dict.get(grade, None)
def percentage_to_grade(percentage):
boundaries = [(90, 'A'), (80, 'B'), (70, 'C'), (60, 'D'), (50, 'E')]
for bound, grade in boundaries:
if percentage >= bound:
return grade
return None
# 示例
grade = input("请输入成绩等级:")
print(f"百分制分数:{percentage_to_grade(grade)}")
percentage = int(input("请输入百分制分数:"))
print(f"成绩等级:{grade_to_percentage(percentage)}")
```
阅读全文
相关推荐















