3、switch 语句-项目2-成绩等级

本文介绍了使用C语言根据成绩范围输出对应的等级'A'到'E'的方法。在代码实现过程中,注意了`scanf()`函数中数据类型的正确使用,避免了将%f误写为%lf导致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 任务描述

给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。
90分以上为’A’,
80-89分为’B’,
70-79分为’C’,
60-69分为’D’,
60分以下为’E’。

2. 代码实现

/*
*Copyright(c)2019,yafangma@126.com
*All rights reserved.
*文件名称:score_grade.cpp
*作    者:马娅芳
*完成日期:2019.1.10
*版 本 号: v1.0

*问题描述:给出一百分制成绩,要求输出成绩等级’A’,’B’,’C’,’D’,’E’。
           90分以上为’A’,
		   80-89分为’B’,
		   70-79分为’C’,
		   60-69分为’D’,
		   60分以下为’E’。
*程序输入:百分制成绩 
*程序输出:成绩等级 
*/

#include <stdio.h>

int main(){
	float score;
	int grade;
	
	scanf("%f", &score);
	grade = (int)(score/10);
	
	switch(grade)
	{
		case 10:
		case 9:
			printf("Grade: A\n");
		    break;
		case 8:
			printf("Grade: B\n");
			break;
		case 7:
			printf("Grade: C\n");
			break;
		case 6:
			printf("Grade: D\n");
			break;
	    default :
		    printf("Grade: E\n");
		    
	}
	
	return 0;
} 

3. 运行结果

好的!以下是关于如何用 `switch` 语句编写成绩等级的一个详细介绍: --- ### 使用 `switch` 语句实现成绩等级评定 在编程中,我们经常需要根据某个条件对数据进行类处理。例如,在学生考试成绩的场景下,我们可以根据数将学生的成绩为不同的等级(如 A、B、C 等)。虽然 `if...else` 可以完成这个任务,但在某些情况下,`switch` 结构也可以派上用场。 然而需要注意的是,**标准 C 或 Java 的 `switch` 语句只能用于离散值匹配(比如整数或字符串),因此直接使用数范围会稍显复杂**。不过可以结合一些技巧来接实现这一功能。 下面是一个基于 **Java 编程语言** 实现的例子: ```java import java.util.Scanner; public class GradeCalculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入您的成绩(0-100): "); int score = scanner.nextInt(); // 将数映射到字母等级 (简化版) char grade; if(score < 60){ grade = &#39;F&#39;; } else{ switch ((score - 50)/10){ // 映射策略调整了数值区方式 case 0 : grade=&#39;D&#39;; break; case 1 : grade=&#39;C&#39;; break; case 2 : grade=&#39;B&#39;; break; default: grade=&#39;A&#39;; break; } } System.out.println("您获得的成绩等级为:" + grade); scanner.close(); } } ``` #### 解释代码的工作原理: 上述程序通过用户输入一个介于 [0,100] 范围内的数字代表学生成绩,并将其转换成对应的大写字母作为评级结果 (&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, 和 &#39;F&#39;) 。其中关键在于 `(score - 50) / 10`, 这一表达式帮助我们将连续区数组织成了几个固定类别供后续操作选择. #### 示例运行结果: 假设用户别输入以下测试案例及对应的输出应该是这样的—— | 输入 | 输出 | |------|-------| |87 | 您获得的成绩等级为:A| |49 | 您获得的成绩等级为:F| 请注意实际应用时可以根据需求微调各个临界点设定以及增加额外错误检查防止非法输入破坏正常流程. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值