当前位置: 首页 > news >正文

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语言类似,也支持这些类型,并且还支持字符串和布尔类型。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Astro + Cloudflare Pages 快速搭建个人博客
  • Secure CRT 9.x版本高亮着色配置文件
  • 前端【详解】缓存
  • vue打包更新packge.json版本号
  • 【区块链+食品安全】湖南省食品行业联合会:溯链中国—基于区块链的食品安全可信追溯平台 | FISCO BCOS应用案例
  • DC-4靶机
  • Shell编程基础:从简单脚本到复杂任务自动化
  • 介质套检测方案,如何提升检测效率?
  • C语言程序设计之内存溢出
  • superset定制化配置修改总结
  • AI安全-文生图
  • Python酷库之旅-第三方库Pandas(081)
  • 《编程学习笔记之道:构建知识宝库的秘诀》
  • Mocha测试框架:JavaScript自动化测试的瑞士军刀
  • 【教程】Ubuntu给pycharm添加侧边栏快捷方式
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • Angular6错误 Service: No provider for Renderer2
  • Apache Pulsar 2.1 重磅发布
  • js继承的实现方法
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 关于Flux,Vuex,Redux的思考
  • 前嗅ForeSpider中数据浏览界面介绍
  • 浅谈Golang中select的用法
  • 如何优雅地使用 Sublime Text
  • 山寨一个 Promise
  • 王永庆:技术创新改变教育未来
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 在Mac OS X上安装 Ruby运行环境
  • 怎么把视频里的音乐提取出来
  • #QT项目实战(天气预报)
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #微信小程序:微信小程序常见的配置传值
  • (1)bark-ml
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (AngularJS)Angular 控制器之间通信初探
  • (javascript)再说document.body.scrollTop的使用问题
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (八)Flask之app.route装饰器函数的参数
  • (论文阅读40-45)图像描述1
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (原)本想说脏话,奈何已放下
  • (转)大型网站的系统架构
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .ai域名是什么后缀?
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .Net Web项目创建比较不错的参考文章
  • .net 简单实现MD5
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .NET下的多线程编程—1-线程机制概述
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ C++ ] template 模板进阶 (特化,分离编译)