C语言编程:根据成绩输出等级
版权申诉
132 浏览量
更新于2024-07-02
收藏 122KB DOC 举报
"C语言实验题,涉及用嵌套的if语句和switch语句根据学生分数判断成绩等级"
在C语言编程中,经常需要根据特定的条件进行逻辑判断,本实验题就是这样一个例子。题目要求根据学生输入的成绩,输出对应的等级,具体等级划分如下:
- 90分以上(包括90):A
- 80~90分(包括80):B
- 70~80分(包括70):C
- 60~70分(包括60):D
- 60分以下:E
实验提供了两种实现方法:
方法一:使用嵌套的if语句
这种方法通过一系列的if...else语句来判断学生的成绩范围,并赋值相应的字母等级。代码中首先定义了变量`score`用于存储输入的成绩,`grade`用于存储等级。在输入成绩后,先检查成绩是否在0到100之间,如果超出这个范围则提示输入错误。然后,使用一系列的if...else语句逐级判断成绩范围并赋值`grade`。
```c
if(score >= 90) grade = 'A';
else if(score >= 80) grade = 'B';
else if(score >= 70) grade = 'C';
else if(score >= 60) grade = 'D';
else grade = 'E';
```
最后输出等级结果。
方法二:使用switch语句
这种方法使用了一个技巧,将成绩转换为一个整数`c`,这个整数的值对应于不同的等级。然后,利用switch语句根据`c`的值来决定等级。代码中同样定义了变量`score`和`grade`,并检查成绩的有效性。接着,计算`c`的值,这里使用了位运算和逻辑与操作:
```c
c = 1*(score >= 90 && score <= 100) + 2*(score >= 80 && score < 90) + 3*(score >= 70 && score < 80) + 4*(score >= 60 && score < 70) + 5*(score < 60);
```
`c`的值会被设置为1、2、3、4或5,分别对应A、B、C、D和E等级。然后,使用switch语句根据`c`的值来设置`grade`。
```c
switch(c) {
case 1: grade = 'A'; break;
case 2: grade = 'B'; break;
case 3: grade = 'C'; break;
case 4: grade = 'D'; break;
case 5: grade = 'E';
}
```
最后输出等级结果。在这个版本中,还使用了`goto`语句来跳转到程序结束,但通常不推荐使用`goto`,因为它可能导致代码难以理解和维护。
两种方法各有优缺点,嵌套的if语句更直观,但当条件增多时,代码可能会变得冗长。而switch语句在处理多分支情况时较为简洁,但需要预先计算出一个与分支对应的值。
在实际编程中,可以根据具体需求和代码可读性选择合适的方法。同时,良好的编程习惯,如添加注释、避免使用`goto`等,也是提高代码质量的重要因素。
2022-10-19 上传
点击了解资源详情
2021-09-27 上传
2021-10-07 上传
2022-07-02 上传
2022-07-02 上传
omyligaga
- 粉丝: 97
- 资源: 2万+
最新资源
- vim-zhongwei-snippets
- java-tomcat-v1
- CalculadoraImcApk:单纯性计算法IMC
- paperclip-av-qtfaststart:修复 FFmpeg MP4 视频文件
- Getting-and-Cleaning-Data-Course-Project:获取和清理数据课程项目
- 这里是关于MySql的学习记录.zip
- Java SSM基于BS的高校教师考勤系统【优质毕业设计、课程设计项目分享】
- Assignment-problem
- drawPanel:允许绘图的 Scala Swing 面板
- optikos-client:使用工作流程的可视化项目管理工具
- example-project-api-tests
- 在学习安卓时,随手写的一个简单的微信固定聊天界面。需要数据库(好像是mysql)和服务器(tomcat)支持。.zip
- 设计模式
- chromatic-todo
- Java SSM机票实时比价系统【优质毕业设计、课程设计项目分享】
- jwt:Flask JWT示例