内容正文:
5单元
选择结构程序设计
C语言程序设计任务驱动式 教程(第2版)
工业和信息化人才培养规划教材
国家精品资源共享课程配套教材
高职高专计算机系列
人 民 邮 电 出 版 社
上一单元,我们学习了运用选择结构程序设计语句完成判断和选择的方法。但通常情况下,我们的判断可以是多次的,即循环判断,如小型计算器可以重复计算多次,可以为多个人预测身高,可以判断任意一个年份是否为闰年等。有关循环的例子还有很多,在自然界中,地球绕太阳旋转、每年的四季更替;在生活中,运动的车轮、旋转的电扇等都为循环。
我们经常会对输入的多个数据应用相同的计算,使用循环语句就解决了烦琐的重复问题。如果程序中有需要多次执行的语句组,就可进行循环结构程序设计。
循环结构是结构化程序设计的3种基本结构之一,循环语句序列可重复执行,直到某条件不成立(或成立)结束,或完成指定的次数。循环结构的编写由循环语句来完成,因为有时还希望控制循环的进入和退出,所以还会使用一些循环控制语句。本单元的6个典型任务讲解和分析了在C语言程序中,循环结构的程序设计方法。
问题引入
Question Introduction
目录导航
任务1 歌唱比赛计算平均分—while语句的运用
任务2 翻牌游戏—do-while语句的运用
思考与训练
单元小结
任务3 彩票中奖—for语句的运用
任务4 九九乘法表——循环嵌套的运用
任务5 找朋友—break语句的运用
任务6 猜数游戏—continue语句的运用
任务1 歌唱比赛计算平均分—while语句的运用
学院举办了一次小型歌唱比赛,邀请各系组织选手并推选评委。比赛时,一支参赛队伍演唱完毕,由评委打分,最终成绩是所有评委的平均分。
设评委人数不固定,由输入的评委人数决定,每个评委打分后进行求和,如果打分次数和评委人数不相等,则继续打分和求和,打分结束后计算平均分,最后输出最终成绩。
工作任务
任务1 歌唱比赛计算平均分—while语句的运用
思路指导
输入:评委人数(int n)。
次数统计:计数器(int i)。
循环:循环条件—i<=n;
循环任务—输入评委打分0~100分(int scr),求和(int sum);打分次数i增1。
求平均分:平均分(int ave),ave=sum/n。
输出:平均分,即选手比赛成绩。
相关知识
(一)循环概述
循环结构是结构化程序设计的基本结构之一,它与顺序结构、选择结构共同作为各种复杂程序的基本结构。
(二)解决循环问题的基本步骤和方法
循环要完成的任务主要有3个。
(1)循环需要确定重复执行的次数,因此要设计一个循环变量,并对它进行初始化。
(2)设计循环条件,即循环变量的终值,控制循环的结束。
(3)设计循环反复执行的任务,即循环体。
(三)当型循环while语句
1.while语句的语法格式
while (表达式)
{循环语句组}
2.while语句的执行过程
当表达式的值为真(即为0)时,执行while语句中的循环语句组,否则执行循环体后续语句。while语句流程图如图所示。
(三)当型循环while语句
3.while语句的进一步说明
(1)循环体如果包含一个以上的语句,则应该用大括号括起来,以复合语句的形式出现。
(2)在循环中应有使循环趋向于结束的语句,即设置修改条件的语句,如本任务中的次数变量i++;。
(3)while语句的特点是先判断表达式的值,然后决定是否执行循环体中的语句。如果表达式的值一开始为假(即值为0),则退出循环,并转入循环体的后续语句执行;如果表达式的值始终为真(即值为1),则是永久循环(死循环)。
任务1 歌唱比赛计算平均分—while语句的运用
任务实施
1.流程图
程序流程图如图5-2所示。
2.程序代码
#include <stdio.h>
void main( )
{int n,i=1,scr,sum=0,ave;
printf("请输入评委的人数:");
scanf("%d",&n);
while(i<=n) //循环输入打分并求和
{printf("请为参赛队打分:0~100之间");
图5-2 任务1流程图
任务1 歌唱比赛计算平均分—while语句的运用
任务实施
scanf("%d",&scr);
sum+=scr;
i++; }
ave=sum/n;
printf("参赛队最终成绩是评委打分平均分:%d",ave);
}
程序运行结果如图5-3所示。
图5-3 任务1运行结果
任务1 歌唱比赛计算平均分—while语句的运用
特别提示
(1)循环变量要有初值。
(2)在循环体中,循环变量要有变化,并且使得循环条件可以为假,以跳出循环,避免出现“死循环