4.8 选择结构程序综合举例
在前面的学习中,我们已经编写和分析了一些程序。本节将继续介绍几个包含选择结构的应用程序,帮助加深对选择结构的理解和应用。
【例4.8】判断闰年的程序
解题思路
在之前的学习中,我们已经介绍过判断闰年的方法。现在我们将用不同的方法来编写程序,并请读者进行分析比较。
程序实现
第一个程序是通过流程图来判断闰年,使用变量 leap
来代表是否为闰年。如果是闰年,则 leap
赋值为1,否则为0。具体的判断逻辑如下:
- 如果年份能被4整除,则进一步判断:
- 如果年份能被100整除,再判断:
- 如果年份能被400整除,则是闰年 (
leap=1
)。 - 否则,不是闰年 (
leap=0
)。
- 如果年份能被400整除,则是闰年 (
- 否则,是闰年 (
leap=1
)。
- 如果年份能被100整除,再判断:
- 如果年份不能被4整除,则不是闰年 (
leap=0
)。
程序代码
#include <stdio.h>
int main() {
int year, leap;
printf("Enter year: ");
scanf("%d", &year);
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0)
leap = 1;
else
leap = 0;
} else {
leap = 1;
}
} else {
leap = 0;
}
if (leap)
printf("%d is a leap year.\n", year);
else
printf("%d is not a leap year.\n", year);
return 0;
}
运行结果
- 输入:2012,输出:
2012 is a leap year.
- 输入:2100,输出:
2100 is not a leap year.
程序分析
leap
是一个标志变量,用来表示年份是否为闰年。- 注意if与else的嵌套关系,采用锯齿形式编写可以清晰地看出嵌套结构。
- 在实际编程中,使用逻辑表达式可以简化代码。
【例4.9】求二次方程的解
解题思路
这个例子中,我们需要处理几种情况,根据二次方程的判别式 𝑏2−4𝑎𝑐b2−4ac 的值来确定方程的根。
程序实现与分析
详细的程序设计包括了对二次方程的所有可能情况的判断,并通过条件分支结构来实现。具体的程序实现和分析,请参见本章内容。
【例4.10】运输公司运费计算
解题思路
根据货物重量、距离以及给定的折扣标准,计算总运费。折扣的变化是有规律的,基于距离的250的倍数进行分段。
程序实现与分析
程序中用 switch
语句来处理不同的折扣区间,变量 c
表示250公里的倍数,根据 c
的值来确定折扣率。详细的程序代码和分析,可以查阅本节内容。
通过这些例子,我们不仅可以学习如何处理选择结构,还可以理解如何将其应用于实际问题中,提高编程技能和逻辑思维能力。