第五单元 循环结构程序设计
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
等级
if(k==2){printf(“二等奖y%-5d”,i); num++;k=0;}
if(k==3){printf(“一等奖%-5d”,i); num++;k=0;}
if(num==6){printf(“\n”); num=0;} //一行显示6个数字
}
}
特别提示
(1)for语句的一般形式中的“表达式1”可以省略。但要注意省略表 达式1时,其后的分号不能省略。 举例:i=1; for (;i<=100;i++)
任务4:九九乘法表——循环嵌套的运用
工作任务 思路指导 相关知识 任务实施
特别提示
工作任务
小学生的九九乘法口诀 “满九九乘法表”,是一个九行九列 的表格,行和列均从1变化到9,如5-1表所示。
1
1
1*1=1
2
1*2=1
3
1*3=3
4
1*4=4
5
1*5=5
6
1*6=6
7
1*7=7
8
1*8=8
9
1*9=9
相关知识
(三)当型循环while语句 1. while语句的语法格式
while (表达式) {循环语句组}
2.while语句的执行过程 当表达式的值为真true
(非0)时,执行while语 句中的循环语句组,否则 执行循环体后续语句, while语句结构如下图所示。
N 表达式
Y 语句组
循环语句后 的语句
相关知识
1.for语句语法格式: for (表达式1;表达式2;表达式3) {循环语句组}
2.for语句执行过程: (1)先计算表达式1的值。 (2)再计算表达式2的值,若其值为真,则执行循环体一次;否则 跳转第(5)步。 (3)然后计算表达式3的值。 (4)回转上面第(2)步。 (5) 结束循环,执行for语句的后续语句。
设评委人数不固定,由输入的评委人数决定,每个 评委打分,进行求和,打分次数和评委人数不相等继 续打分和求和,打分结束计算平均分,最后输出最终 成绩。
思路指导
输入:评委人数(int n)。 次数统计:计数器(int i) 循环:循环条件i<=n 循环任务输入评委打分0-100分之间(int scr ), 求和(int sum),打分次数i增1 求平均分:平均分(int ave) ave=sum/n 输出:平均分为选手比赛成绩
C语言程序设计任务驱动式教程
第五单元 循环结构程序设计
问题引入
我们经常会对输入的多个数据应用相同的计算,使用循环 语句就解决了繁琐的重复问题。如果程序中有需要多次执行的 语句组,就进行循环结构程序设计。
循环结构是结构化程序设计的三种基本结构之一,循环语 句序列可重复执行,直到某条件不成立(或成立)结束,或完 成指定的次数。循环结构的编写由循环语句来完成,有时我们 还希望控制循环的进入和退出,所以还会使用一些循环控制语 句。本单元的五个典型任务讲解和分析了在C语言程序中循环结 构的程序设计方法。
语句组
Y 表达式
N
循环语句后 的语句
图5-4 do-while 语句流程
相关知识
3. do-while语句进一步说明 (1)do-while语句是先执行语句序列一次,后判断表达式的值。 (2)如果do-while语句的循环体部分是多个语句组成,则必须用左右 大括号括起来,使其形成复合语句。 (3)书写时不要忘记while圆括号后面有一个分号“;”。
2
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3
4
5
6
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
//循环判断三位数中中奖数字
{ a=i%10;
//求个位
b=i/10%10;
//求十位
c=i/100%10;
//求百位
任务实施
if ( a==3) k++;
//个位是3,k=1
if (b==2) k++;
//十位是2,k=2
if(c==1) k++;
//百位是1,k=3
if(k==1){printf(“三等奖%-5d”,i);num++;k=0;} //根据k的值判定获奖
任务3:彩票中奖——for语句的运用
工作任务 思路指导 相关知识 任务实施
特别提示
工作任务
一个小型模拟彩票中奖机,已知彩票中奖号码是 一个固定的3位数即原始号码。对任意一个三位数, 取出它的每位数字和原始号码的每位数字比较,共有 1位数相同中三等奖,2位数相同中二等奖,3位数都 相同中一等奖。在所有的三位数中进行比较,输出所 有中奖数字。
任务实施
#include <stdio.h>
void main( )
{int n,i=1,scr,sum=0,ave;
printf(“请输入评委的人数:”);
scanf(“%d”,&n);
while(i<=n)
//循环输入打分并求和
{printf(“请为参赛队打分:0-100之间”);
scanf(“%d”,&scr);
if (sum1<sum2)
printf(“偶数玩家赢!”);
else
if (sum1=sum2)
printf(“平局!”);
}
特别提示
while语句和do-while语句的区别: (1)在循环条件和循环体相同的情况下while后面的 表达式第一次的值为“真”时,两种循环得到的结果相 同。 (2)当while后面的表达式第一次的值为“假”时, while语句一次也不执行,而do-while 语句可以顺利执行 一次。
//循环
{printf(“请输入偶数分值”);
scanf(“%d”,&k);
//输入
if ( k%2==0)
//偶数分值求和
sum2+=k;
}while(k!=0);
printf(“奇数分值是%d偶数分值是%d”,sum1,sum2);
if (sum1>sum2)
printf(“奇数玩家赢!”);
else
相关知识
1.“直到型”循环do-while语句 do-while语句语法格式: do {循环语句组} while(表达式);
相关知识
2.do-while语句执行过程 先执行一次指定的循环体语句,然后判断表达式的值,当表达式
的值为非0时,返回重新执行该语句,如此反复,直到表达式的值等 于0为止,此时循环结束。do-while 语句结构如图所示 。
sum=sum+i; (2)如果省略表达式2,即表示表达式2的值始终为真,循环将无终 止地进行下去。
举例:for (i=1;;i++) printf ("%d",i);
特别提示
(3)如果省略表达式3,也将产生一个无穷循环。因此,应另外设法 保证循环能正常结束,可以将循环变量的修改部分(即表达式3)放 在循环语句中控制。 举例:for (i=1;i<=100;) { printf ("%d",i); i++; } (4) 可以同时省略表达式1和表达式3,即省略了循环的初值和循环 变量的修改部分,此时完全等价于while语句。 举例:i=1; for (;i<=10;) { printf ("%d",i); i++; }
行业PPT模板:/hangye/ PPT素材下载:/sucai/ PPT图表下载:/tubiao/ PPT教程: /powerpoint/ Excel教程:/excel/ PPT课件下载:/kejian/ 试卷下载:/shiti/
相关知识
(一)循环是怎样的 循环结构是结构化程序设计的基本结构之一,它与顺序结构、选择 结构共同作为各种复杂程序的基本结构。 (二)解决循环问题的基本步骤和方法 循环要完成的任务主要有三个: (1)循环需要确定重复执行的次数,因此要设计一个循环变量, 并对它进行初始化; (2)设计循环条件即循环变量的终值,控制循环的结束; (3)设计循环反复执行的任务即循环体。
思路指导
初始化:原始号码123 循环:循环变量i是100-999的数字,个位a=i%10,十 位b=i/10%10,c=i/100%10。 计数器:k 条件判断:判断a,b,c是否1,2,3,有一个相等k++ 条件输出:判断k=1输出“三等奖+数字”
k=2输出“二等奖+数字” k=3 输出“一等奖+数字”
sum+=scr;
i++; }
ave=sum/n;
printf(“参赛队总成绩是评委打分平均分:%d”,ave);
}
特别提示
1. 循环变量要有初值。 2. 在循环体中,循环变量要有变化,并且使得循环条件
可以为假,跳出循环,避免“死循环”。 3. 打分和sum初值为0。
任务2:翻牌游戏——do-while语句的运用
任务实施
#include <stdio.h>
void main()
{
int i,k,sum1=0,sum2=0 ;
do
//循环