成绩转换

题目描述
输入一个百分制的成绩M,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
输入
第一行是一个整数N,表示测试数据的组数(N<10)
每组测试数据占一行,由一个整数M组成(0<=M<=100)。
输出
对于每组输入数据,输出一行。
样例输入
2
97
80
样例输出
A
B

代码:
#include <stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a;
scanf("%d",&a);
if(a>=90)
printf("A\n");
else if(a>=80)
printf("B\n");
else if(a>=70)
printf("C\n");
else if(a >= 60)
printf("D\n");
else
printf("E\n");
}
return 0;
}

在编程中,“成绩转换”通常是指将百分制成绩(如 0-100转换等级制(如 A、B、C、D、F)或五分制、四级制等。下面我将提供一个**完整的 Python 程序**,实现从百分制成绩转换等级制(A-F),并包含输入验证、异常处理和循环输入功能。 --- ```python def score_to_grade(score): """ 将百分制成绩转换等级制 :param score: int or float, 成绩 (0-100) :return: str, 对应的等级 """ if score < 0 or score > 100: raise ValueError("成绩必须在 0 到 100 之间") if score >= 90: return 'A' elif score >= 80: return 'B' elif score >= 70: return 'C' elif score >= 60: return 'D' else: return 'F' def main(): """ 主程序:循环接收用户输入,转换成绩,并输出结果 """ print("=== 百分制成绩等级制 ===") print("输入 'quit' 或 'exit' 退出程序") while True: user_input = input("\n请输入成绩(0-100):").strip() # 检查是否退出 if user_input.lower() in ['quit', 'exit', 'q']: print("程序已退出。") break try: # 转换为浮点数 score = float(user_input) # 转换成绩 grade = score_to_grade(score) print(f"成绩 {score} 的等级为:{grade}") except ValueError as e: if "could not convert string to float" in str(e): print("❌ 输入无效,请输入一个数字或 'quit' 退出。") else: print(f"❌ {e}") if __name__ == "__main__": main() ``` --- ### 🔍 解释: 1. **`score_to_grade(score)` 函数**: - 接收一个数值型成绩- 使用 `if-elif-else` 结构判断区间,返回对应的字母等级。 - 如果成绩不在 0~100 范围内,抛出 `ValueError`。 2. **`main()` 函数**: - 提供交互式界面,持续等待用户输入。 - 支持输入 `quit`、`exit` 或 `q` 退出。 - 使用 `try-except` 捕获非数字输入和非法范围错误。 - 对输入使用 `.strip()` 去除空格,`.lower()` 统一大小写。 3. **`if __name__ == "__main__":`**: - 标准写法,确保模块被直接运行时才执行主程序。 4. **用户体验优化**: - 错误提示清晰。 - 支持浮点数输入(如 85.5)。 - 可重复使用,适合教学或实际应用。 --- ### ✅ 示例运行: ``` === 百分制成绩等级制 === 输入 'quit' 或 'exit' 退出程序 请输入成绩(0-100):85 成绩 85.0 的等级为:B 请输入成绩(0-100):92 成绩 92.0 的等级为:A 请输入成绩(0-100):45 成绩 45.0 的等级为:F 请输入成绩(0-100):abc ❌ 输入无效,请输入一个数字或 'quit' 退出。 请输入成绩(0-100):quit 程序已退出。 ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值