成绩转换

Problem Description
输入一个百分制的成绩t,将其转换成对应的等级,具体转换规则如下:
90~100为A;
80~89为B;
70~79为C;
60~69为D;
0~59为E;
Input
输入数据有多组,每组占一行,由一个整数组成。
Output
对于每组输入数据,输出一行。如果输入数据不在0~100范围内,请输出一行:“Score is error!”。
Sample Input

56
67
100
123

Sample Output

E
D
A
Score is error!

#include<iostream>
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<cmath>
#include<map>
#include<set>
#include<queue>
#include<cstdio>
#include<algorithm>
#include<string>
#include<sstream>
#include<ctime>
#define ll long long
#define INF 0x3f3f3f3f

int main() {
    ios::sync_with_stdio(false);
    int a;

    while(cin>>a){
        if(a>=0&&a<=100){
            if(a>=90) cout<<"A";
            else if(a>=80) cout<<"B";
            else if(a>=70) cout<<"C";
            else if(a>=60) cout<<"D";
            else cout<<"E";

            cout<<endl;
        }else{
            cout<<"Score is error!"<<endl;
        }

    }
    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 程序已退出。 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值