C语言典型例题37

《C程序设计教程(第四版)------谭浩强》

例题3.5 按照按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为 60~69分,D等在60分以下,成绩的等级从键盘输入


代码:

//《C程序设计教程(第四版)------谭浩强》
//例题3.5 按照按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70~84分,C等为 60~69分,D等在60分以下,成绩的等级从键盘输入

#include <stdio.h>
int main()
{
	char scores;
	
	printf("请输入你需要查看的分数等级所对应的分数区间:\n");
	scanf("%c",&scores);
	
	switch(scores)
	{
		case 'A':
			printf("A等级的分数区间为[85,100]\n");
			break;
		case 'B':
			printf("B等级的分数区间为[70,84]\n");
			break;
		case 'C':
			printf("C等级的分数区间为[60,69]\n");
			break;
		case 'D':
			printf("D等级的分数区间为[0,59]\n");
			break;
		default:printf("你的输入有误!\n");
	}
	
	return 0;
}

运行结果:(只举两个例子)

(1)

(2)


代码中需要注意的点:

(1)scanf函数中一定要细心,不要在转义字符后面输入\n

scanf("%c\n",&scores);(错误写法)

scanf("%c",&scores); (正确写法)

二者虽然看起来差别不大,但是却差别特别大

A:(错误示范运行结果)

(2)(正确示范运行结果)

相关C语言知识点:

(1)switch语句

Switch语句是编程中一种多分支选择结构,用于根据表达式的值选择执行不同的代码块。

它允许程序根据不同的条件值来执行不同的代码,可以替代多个if-else语句,提高代码的可读性和可维护性。

Switch语句的基本语法包括一个表达式和多个‌case标签,每个case标签后面跟着一条或多条要执行的语句,以及一个可选的‌default标签用于处理未匹配的情况。

Switch语句的基本语法和用法

  • 基本语法switch(expression) { case value1: // 语句 break; case value2: // 语句 break; ... default: // 默认语句 }
  • 表达式:一个返回整数、枚举、字符或字符串的表达式,用于与case标签的值进行比较。
  • case标签:表示可能的值,如果表达式的值与某个case标签的值匹配,则执行该case后面的语句。
  • break语句:用于跳出switch语句,防止执行下一个case的语句。
  • default标签:可选,用于处理所有未匹配的情况。

Switch语句的使用场景和注意事项

  • 使用场景:当需要根据不同条件执行不同操作时,使用switch语句可以使代码更加简洁和清晰。
  • 注意事项
    • 每个case后面的语句块必须以break语句结束,否则程序会继续执行下一个case的语句块。
    • default标签是可选的,但如果所有case标签都没有匹配到,且没有default标签,程序将不执行任何操作。
    • case标签的排放顺序是无关紧要的,但通常将最不可能匹配的情况放在后面可以提高效率。

不同编程语言中的Switch语句

  • Java:支持整数、枚举、字符和字符串类型的表达式。
  • C语言:支持字符变量、整型变量、枚举变量作为表达式。
  • C++:与C语言类似,也支持这些类型,并且还支持字符串和布尔类型。
相关推荐
白拾8 分钟前
使用Conda管理python环境的指南
开发语言·python·conda
新晓·故知23 分钟前
<基于递归实现线索二叉树的构造及遍历算法探讨>
数据结构·经验分享·笔记·算法·链表
从0至133 分钟前
力扣刷题 | 两数之和
c语言·开发语言
总裁余(余登武)34 分钟前
算法竞赛(Python)-万变中的不变“随机算法”
开发语言·python·算法
NormalConfidence_Man35 分钟前
C++新特性汇总
开发语言·c++
一个闪现必杀技40 分钟前
Python练习2
开发语言·python
Eric.Lee20211 小时前
音频文件重采样 - python 实现
人工智能·python·深度学习·算法·audio·音频重采样
小比卡丘1 小时前
C语言进阶版第17课—自定义类型:联合和枚举
android·java·c语言
一个不知名程序员www1 小时前
leetcode第189题:轮转数组(C语言版)
c语言·leetcode
有梦想的咕噜1 小时前
target_link_libraries()
开发语言