判断成绩-C语言实现

任务描述

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

相关知识

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;

}

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨染盛夏呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值