前言
最近在学习《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