《C语言大学教程 (第八版)》第四章 课后习题 4.30 参考答案

前言
  最近在学习《C语言大学教程(第八版)》,学习到第四章后,课后习题4.30,稍微卡壳了一下,做一下记录,希望可以帮到有需要的同学。
解决
  先看一下,第四章,课后习题4.30,如下图:
在这里插入图片描述
  读完这道课后习题,有那么一瞬间,懵了,竟不知道,要如何,去按照题目中的要求,去设计嵌套的if…else语句。特别是,不知道要怎么设计if语句中的条件判断。甚至想出了如下的做法:

#include <stdio.h>
#include <math.h>

int main(void)
{
   
	unsigned int aCount = 0;
	unsigned int bCount = 0;
	unsigned int cCount = 0;
	unsigned int dCount = 0;
	unsigned int fCount = 0;

	puts("Enter the letter grades.");
	puts("Enter the EOF character to end input.");
	int grade; // one grade

	printf("\\n: %d\n", '\n');

	while ((grade = getchar()) != EOF)
	{
   
	    if (grade == 'A' || grade == 'a' || ...)
	    {
   
	    	...
	    }
	    else
	    {
   
	    	...
	    }
	}

  当时,如何设计if语句的判断条件,思维绕不出来了。上述代码这样做,会有一个问题:if的判断条件为A || B,对应的else判断条件为!A && !B。于是,思路进入了僵局。
  为了打破僵局,决定重回书籍,找到if…else语句的章节,重新从定义入手,看看能不能找到解决办法,如下图:
在这里插入图片描述
  接着,找到了如下的描述:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
  书中的这段示例,直接给到了解决办法。于是,第四章课后习题4.30,用嵌套的if…else语句替换switch语句,如法炮制:

#include <stdio.h>
#include <math.h>

int main(void)
{
   
	unsigned int aCount = 0;
	unsigned int bCount = 0;
	unsigned int cCount = 0;
	unsigned int dCount = 0;
	unsigned int fCount = 0
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值