鱼C论坛

 找回密码
 立即注册
查看: 741|回复: 3

百分制成绩转换为成绩等级

[复制链接]
发表于 2024-10-18 22:30:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
解决本项目的关键是如何将输入的百分制成绩与case常量联系起来,不难想到将百分制成绩(用score表示)除以10之后再取整,一定得到0到10之间的数。9、10对应’a’,8对应‘b‘,......,5、4、3、2、1、0对应’e’既不及格。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-10-18 22:31:52 | 显示全部楼层
为了将百分制成绩转换为成绩等级,我们可以利用Python的整数除法和字典来实现,下面是一个简单的例子:

  1. def convert_score_to_grade(score):
  2.     # 先对输入的成绩进行检查,确保在0到100之间
  3.     if score < 0 or score > 100:
  4.         return "Invalid score"

  5.     # 将成绩转换为与case常量对应的整数
  6.     grade_mapping = {
  7.         10: 'a',  # 分数为100
  8.         9: 'a',   # 90-99
  9.         8: 'b',   # 80-89
  10.         7: 'c',   # 70-79
  11.         6: 'd',   # 60-69
  12.         5: 'e',   # 50-59
  13.         4: 'e',   # 40-49
  14.         3: 'e',   # 30-39
  15.         2: 'e',   # 20-29
  16.         1: 'e',   # 10-19
  17.         0: 'e'    # 0-9
  18.     }
  19.    
  20.     # 计算成绩对应的区间
  21.     grade_key = score // 10
  22.     return grade_mapping[grade_key]

  23. # 测试
  24. print(convert_score_to_grade(85))  # Output: 'b'
  25. print(convert_score_to_grade(50))  # Output: 'e'
  26. print(convert_score_to_grade(73))  # Output: 'c'
复制代码


在这个函数中,通过将成绩除以10再取整,我们能够得到一个在0到10之间的键,用这个键可以从`grade_mapping`字典中获取相应的成绩等级。这个方法简单且有效!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-10-19 14:52:00 | 显示全部楼层
有c语言的解决方法吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-10-19 14:52:10 | 显示全部楼层
wc8576 发表于 2024-10-19 14:52
有c语言的解决方法吗


当然可以用C语言来实现这个功能。下面是一个简单的例子,演示如何将百分制成绩转换为成绩等级:

  1. #include <stdio.h>

  2. char convert_score_to_grade(int score) {
  3.     if (score < 0 || score > 100) {
  4.         return 'X'; // 用'X'表示无效的成绩
  5.     }

  6.     int grade_key = score / 10;
  7.    
  8.     switch (grade_key) {
  9.         case 10:
  10.         case 9:
  11.             return 'A';
  12.         case 8:
  13.             return 'B';
  14.         case 7:
  15.             return 'C';
  16.         case 6:
  17.             return 'D';
  18.         default:
  19.             return 'E'; // 包括0-5的情况
  20.     }
  21. }

  22. int main() {
  23.     int score = 85;
  24.     printf("Score: %d, Grade: %c\n", score, convert_score_to_grade(score));

  25.     score = 50;
  26.     printf("Score: %d, Grade: %c\n", score, convert_score_to_grade(score));

  27.     score = 73;
  28.     printf("Score: %d, Grade: %c\n", score, convert_score_to_grade(score));

  29.     score = 110; // 测试无效成绩
  30.     printf("Score: %d, Grade: %c\n", score, convert_score_to_grade(score));

  31.     return 0;
  32. }
复制代码


在这个程序中,我们定义了一个`convert_score_to_grade`函数,接收一个整数分数作为参数,并返回一个字符表示对应的等级。用`switch`语句来匹配对应的成绩区间,并返回相应的等级。由于每10分级一个区间,我们通过`score / 10`得到一个0到10之间的数。对于无效的成绩(小于0或大于100),我们用字符'X'来表示。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-10 00:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表