判断成绩-C语言实现

news2024/11/14 15:26:51

任务描述

本关任务:判定学生成绩。

相关知识

if-else 分支语句基本用法

C 语言提供了 if-else 分支语句用于实现程序的选择结构。 基本格式如下:

  1. if ( 表达式 )
    语句A
    else
    语句B

基本流程图如下:

图1 if-else 分支语句流程图

从上面的流程图不难看出, if-else 分支语句的执行顺序为: 1.计算圆括号中表达式的值; 2.若表达式的值不为0 ( 测试条件成立 ),执行语句 A,该 if-else 语句执行结束; 3.若表达式的值为0 ( 测试条件不成立 ),执行语句 B,该 if 语句执行结束

注意:无论表达式是否成立,语句 A 和语句 B 会且只会被执行其中一个,不可能同时执行。 假设我们要判断一个非零数是正数还是负数,可以采用以下代码:

  1. /* 本段代码用来判断非零数的正负 */
  2. if( a > 0 )
  3. printf("这个数是正数");
  4. else
  5. printf("这个数是负数");

a等于 1 时,执行结果如下:

  1. 这个数是正数

a等于 −1 时,执行结果如下:

  1. 这个数是负数

if-else 分支语句综合用法

根据 C 语言的语法规定, if-else 语句中的语句 A 和语句 B 可以是任意多条合法的语句,因此上述 if-else 语句可以写成下面这个样子:

  1. if (表达式1)
  2. 语句A
  3. else
  4. if (表达式2) // 这里语句 B 再使用一个 if 语句
  5. 语句B

流程图如下:

图2 if-else 语句嵌套 if 语句流程图

我们可以对上面判断正负数的代码进行修改完善。

  1. /* 本段代码用来判断一个数是正数还是负数 */
  2. if( a > 0 )
  3. printf("这个数是正数");
  4. else if( a < 0 ) //习惯上一般将if与else写在一行
  5. printf("这个数是负数");

a等于 1 时,执行结果如下:

  1. 这个数是正数

a等于 −1 时,执行结果如下:

  1. 这个数是负数

由上面两个示例代码可以看出,当a等于 0 时,第一个程序代码会打印“这个数是负数”,这个结论是对a的错误判断;第二个程序代码什么都不打印,相较于第一个代码,至少不会得出错误结论。如果想得到a的正确判断结果,可以进一步修改程序代码。

  1. /* 本段代码用来判断一个数是正数,负数或零 */
  2. if( a > 0 )
  3. printf("这个数是正数");
  4. else if( a < 0 ) //习惯上一般将if与else写在一行
  5. printf("这个数是负数");
  6. else
  7. printf("这个数是零");

通过上面的程序代码,可以看出可以在 if-else 语句中添加 if-else 语句实现多个条件的复杂判断,关于这方面的内容将在第三章进行详细介绍。

编程要求

根据提示,在右侧编辑器的 Begin-End 处补充代码。某课程考试成绩由A、B、C、D、E共5级构成,请在输入的多个成绩中判断是否有得 A 的和得 E 的学生。

测试说明

平台会对你编写的代码进行测试。

测试输入:

  1. ABCE

预期输出:

  1. 有学生成绩为A。
  2. 有学生成绩不及格。

测试输入:

  1. ABCBD

预期输出:

  1. 有学生成绩为A。
  2. 没有学生成绩不及格。

代码展示:

 

/* 本程序有来判断多个成绩中是否有得A的和得E的学生 */
#include <stdio.h>
#define YES 1
#define NO  0
main(){
	char ch;
	int stateA;    /* 判断成绩得A */
	int stateE;    /* 判断成绩得E */
	
	/* 请在此处添加代码,在多个成绩中判断是否有得A的和得E的学生 */
	/********** Begin **********/
    
	/********** End **********/
	
	if( stateA == YES )
		printf("有学生成绩为A。\n");
	else
		printf("没有学生成绩为A。\n");
	if( stateE == YES )
		printf("有学生成绩不及格。\n");
	else
		printf("没有学生成绩不及格。\n");

	return 0;

}

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/134775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单相全桥逆变原理及仿真实验

前言 一、单相全桥逆变器组成原理 1.全桥逆变电路拓扑结构 2.单相逆变器的SPWM调制方式 二、单相全桥逆变器仿真 1.SPWM调制波仿真 2.全桥逆变仿真 三、SPWM单片机程序实现 1.CubeMX配置 2.SPWM正弦表数据生成 3.Keil5代码 4.protues仿真观测波形 前言 通常把直流电变成…

力扣 # 1323. 6 和 9 组成的最大数字 JAVA实现

力扣 1323. 6 和 9 组成的最大数字 给你一个仅由数字 6 和 9 组成的正整数 num。 你最多只能翻转一位数字&#xff0c;将 6 变成 9&#xff0c;或者把 9 变成 6 。 请返回你可以得到的最大数字。 难度&#xff1a;简单 示例 1&#xff1a; 输入&#xff1a;num 9669 输出&a…

基于采样的规划算法之动态规划方法

经过前面对RRT的介绍,我们发现基于采样的规划算法与基于图搜索的规划算法都是通过对路径树进行拓展新节点,来找到起点到终点的路径解。RRT家族通过随机采样来生成这棵路径树,随机采样会面临采样低效的问题——大部分采样的新节点都无益于提升路径解的最优性。动态规划基于特…

JS对数组的操作详解

目录 shift 方法 unshift 方法 reverse方法 sort方法 reduce方法 concat方法 join方法 push方法 pop方法 slice方法 splice方法 forEach方法 map方法 filter方法 every方法 some方法 indexOf方法 find方法 includes方法 在这里总结一下JS的数组方法&#xf…

JDBC基本使用

文章目录一、JDBC技术1.1、JDBC概念1.2、JDBC作用1.3、JDBC工作原理1.4、JDBC工作流程二、使用JDBC访问数据库2.1、创建Maven项目2.2、添加数据库依赖2.2.1、mysql依赖2.2.2、oracle依赖2.3、编写代码2.3.1、加载驱动2.3.2、通过DriverManager获取connection连接2.3.3、执行SQL…

java中线程安全问题及解决方法、线程状态、线程间通信(线程等待唤醒机制)

线程安全 概述&#xff1a; 多线程访问了共享数据&#xff0c;此时会产生冲突&#xff08;如&#xff1a;在多个线程中执行售卖货物的业务&#xff0c;要求是某个货被某个线程售卖后&#xff0c;其他线程应该不再可以售卖此个货&#xff0c;但是默认被某个线程售卖后&#xf…

JVM 教程

jvm教程jvm概述前言JVM 定义JVM 的作用查看自己的 JVMJVM&#xff0c;JRE 和 JDK 联系小结JVM 整体架构目标JVM 整体架构类加载子系统运行时数据区执行引擎小结JVM 常用参数配置IntelliJ IDEA 添加运行参数JVM 参数&#xff1a;跟踪垃圾回收JVM 参数&#xff1a;跟踪类的加载与…

手把手代码实现五级流水线CPU——第二篇:分支预测流水线

系列文章目录 第三篇&#xff1a;流水线控制逻辑 第一篇&#xff1a;初级顺序流水线 文章目录系列文章目录一、流水线硬件结构二、流水线各阶段的实现实现原理一、流水线硬件结构 取指阶段 PC增加器&#xff1a;用来计算下一条指令的地址valP 译码阶段 一次译码操作读出俩个寄…

学习vue的准备工作

一、前提&#xff1a; 1、vscode安装&#xff1a; https://blog.csdn.net/m0_55400356/article/details/1260267332、node.js安装&#xff1a; 已安装 16.0 或更高版本的 Node.js&#xff1b; https://www.runoob.com/nodejs/nodejs-install-setup.html3、安装vue&#xff…

hadoop之ranger权限配置(二)

文章目录一、编译ranger&#xff08;node12&#xff09;二、安装前环境准备&#xff08;node12&#xff09;三、安装RangerAdmin&#xff08;node12&#xff09;(root)五、Ranger Hive-plugin&#xff08;node10&#xff09;六、Ranger Hdfs-plugin&#xff08;node10、11&…

ansible远程控制及其相关操作

1.控制主机和受控主机通过root用户通过免密验证方式远程控住受控主机实施对应&#xff08;普通命令&#xff0c;特权命令&#xff09;任务&#xff08;以下所有结果均见截图&#xff09; (1)控住主机--server通过主机名匹配对应连接的受控主机 [rootserver ~]#vim /etc/hosts …

一本通 1267:【例9.11】01背包问题(详细代码+严谨思路+清晰图片)

经典01背包问题 这里给你3种方法 目录 DFS 思路&#xff1a; 代码&#xff1a; DFS记忆化 思路&#xff1a; 代码&#xff1a; 动态规划 思路&#xff1a; 代码&#xff1a; DFS 时间复杂度 &#xff1a;O(2^n) 思路&#xff1a; DFS求出所有选法&#xff0c;再用…

Git Stash、Git Merge、Git Rebase、Git Revert

GIT 日常使用总结git stashgit mergegit rebase将多个commit合并成一个commitgit revert撤销修改撤销commit 但是不撤销add 的内容撤销addGIT Rebase 补充说明&#xff1a;git stash git stash&#xff1a;将修改后的代码存储到本地的一个栈结构&#xff0c;将工作区和暂存区恢…

37-Vue之ECharts高级-交互API

交互API前言全局ECharts对象echartsInstance对象前言 本篇来学习下ECharts中交互API的使用 全局ECharts对象 全局 echarts 对象是引入 echarts.js 文件之后就可以直接使用的 init &#xff1a;初始化ECharts实例对象&#xff0c;使用主题 registerTheme&#xff1a;注册主题…

Avatar和虚拟场景如何影响用户VR社交行为

对于VR社交来讲&#xff0c;虚拟场景&#xff08;社交环境&#xff09;、Avatar&#xff08;虚拟化身&#xff09;是两个重要的元素&#xff0c;一个代表了人们在VR中互动的空间&#xff0c;而另一个则代表他们在这个空间中所扮演的角色。现阶段&#xff0c;Avatar有多种形态&a…

已解决import tensorflow.contrib.layers as layers导包错误

已解决W tensorflow/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library ‘cudart64_110.dll’; dlerror: cudart64_110.dll not found I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not ha…

opencv-python常用函数解析及参数介绍(八)——轮廓与轮廓特征

轮廓与轮廓特征前言1.获取轮廓通过膨胀与腐蚀获得轮廓通过梯度获取轮廓通过边缘检测获取轮廓2.寻找轮廓参数及作用对比3.轮廓特征前言 在前面的文章中我们已经学会了使用膨胀与腐蚀、使用梯度、使用边缘检测的方式获得图像的轮廓&#xff0c;那么在获得轮廓后我们可以对图像进…

​赛分科技冲刺科创板上市:拟募资8亿元,复星、高瓴为股东​

近日&#xff0c;苏州赛分科技股份有限公司&#xff08;下称“赛分科技”&#xff09;在上海证券交易所递交招股书&#xff0c;准备在科创板上市。本次冲刺上市&#xff0c;赛分科技计划募资8亿元&#xff0c;将用于20万升/年生物医药分离纯化用辅料、研发中心建设项目&#xf…

《收获,不止Oracle》读书笔记一

当今时代 技术人员&#xff0c;真正的差距其实在意识 1.忽略了知识的重点 20%的知识&#xff0c;解决80%的问题 2.从未考虑知识落地 知识要落地&#xff0c; 要思考应用的场合。 学习任何技术都是一样的&#xff0c;没有思考过你所学的某项技术有什么用&#xff0c;没有想…

P1827 [USACO3.4] 美国血统 American Heritage

题目描述 农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛 们的家谱作成二叉树&#xff0c;并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。 你的任务是在被给予奶牛家谱的“树中序遍历…