第五单元 循环结构程序设计
C语言 第五章-循环结构程序设计
执行过程如图所示。其中i为外循环的控制变 量,j为内循环的控制变量。
i =0 当 i <=10
j=0 当 j<=10
printf(“%d ”, i*j ) j++ i++
例4 编程打印“九九乘法表”。
分析:九九乘法表 1×1=1 1×2=2 1×3=3 … 2×1=2 2×2=4 2×3=6 … 3×1=3 3×2=6 3×3=9 … …… 9×1=9 9×2=18 9×3=27 …
i ++ ; } while ( i <= 100 ) ; printf ( " %d " , sum ) ; }
结果相同
同样是下列程序,但如果while后面的表达式结果一开始就是 假时,两种循环结果会不一样。
main ( ) /*程序1*/
{ int i , sum = 0 ; i = 101 ;
所以程序需要设计成二重循环。由于题目只 要求找到一组解,所以在循环过程中只要找到一组 满足条件的x, y, z就可以跳出循环。
跳出循环的方法可以采用break语句,但是, 因为是二重循环,所以要考虑使用break是否方便。
程序 百钱买百鸡问题。 void main ( ) { int x , y , z ;
打印第2行 ( i = 2 ) for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
…… 打印第9行 ( i = 9 )
for (j=1;j<=9;j++) printf(“%5d”,i*j) ; printf ( “ \n ” ) ; /*换行打印*/
C语言程序设计_05循环结构程序设计
5.2 DO…WHILE循环结构 5.2.1 DO…WHILE语句的格式 DO…WHILE语句的一般格式为: DO 语句 WHILE(表达式); DO…WHILE语句中的表达式表示循环的条件,可 以是任何表达式,常用的是关系表达式和逻辑表达 式。表达式必须加圆括号。语句是重复执行的部分, 称作循环体。
由亍循环体在表达式2乊后表达式3乊前执行所以把循环体语句放在表达式3的开头循环体语句不原来的i构成逗号表达式作为循环语句新的表达式3从而也就没有循环体语句了
第5章 循环结构程序设计
5.1 WHILE循环结构 5.2 DO…WHILE循环结构 5.3 FOR循环结构 5.4 与循环有关的控制语句 5.5 3种循环语句的比较 5.6 循环的嵌套 5.7 循环结构程序举例 本章小结
图5-6 FOR语句执行过 程
FOR语句的执行过程如图5-6所示。具体由以下几步 完成: (1)求表达式1。 (2)求表达式2,并判定其值为0或非0。若值为非0, 转步骤(3);否则结束FOR语句。 (3)执行语句,然后求表达式3。 (4)转向步骤(2)。 由FOR语句的执行流程可知,表达式1的作用是为循 环控制的有关变量赋初值,表达式2是循环控制条件, 表达式3用于修正有关变量,语句是重复执行部分。
【例5.7】输入20个数,求出其中的最大值与最小值。
5.3.3 FOR语句的各种变形 1.在FOR语句中省略表达式 FOR语句中的3个表达式可以部分或全部省略,下面 给出语句的4种基本变形。 (1)表达式1移至FOR语句前,但它后面的分号必 须保留。这时FOR语句的形式为: 表达式1; FOR(; 表达式2; 表达式3) 语句
(2)表达式3移至循环体语句之后,但它前面的分 号必须保留。FOR语句的形式为: FOR(表达式1; 表达式2;) { 语句; 表达式3; } 对于求P=5!的程序段,省略表达式3,将其放在循环 体中,则程序段写成:
第5章-循环结构程序设计PPT优秀课件
5.3.1 前测型Do…Loop循环语句
格式:
Do [While | Until <条件表达式>] <语句块> [Exit Do] <语句块>
Loop
18
5.3.1 前测型Do…Loop循环语句
前测型Do…Loop循环的流程图
Do While…Loop流程图
Do Until…Loop流程图
条件表达式 值为真?
格式:
Do <语句块> [Exit Do] <语句块>
Loop [While | Until <条件表达式>]
23
5.3.1 后测型Do…Loop循环语句
说明:
后测型Do…Loop循环语句与前测型Do…Loop循环语句的主 要区别在于:
后测型要先执行一次循环体,再判断条件;而前测型要 先判断条件,然后根据判断结果决定是否执行循环体。因此 对于后测型,不管条件是否满足,循环体至少有一次执行机 会。
16
5.3 Do…Loop循环语句
导入:
Do…Loop循环也属于条件型循环,即根据条件的 成立与否来决定是否执行循环。Do…Loop循环的应 用具有很强的灵活性,主要体现在:它既能指定循环 开始条件,又能指定循环结束条件;既能构成前测型 Do…Loop循环语句,又能构成后测型Do…Loop循 环语句。
25
5.3.1 后测型Do…Loop循环语句 【例5-10】将400~600间能够被3整除的数 输出(上机练习)
【例5-11】(略)
26
5.4 循环嵌套
介绍:
一个循环结构中又包含一个或多个循环结构被称为 循环嵌套,或称多重循环。 多重循环对嵌套的层数没有限制。有几层嵌套,就 称为几重循环,如二重循环、三重循环、四重循环 等。一般地,把嵌套在一个循环体内部的另一个循 环结构称为内循环;这样,嵌套了其他内循环部分 的循环结构就称为外循环。 为了使多重循环结构具有较好的可读性,通常用缩 进方式书写相应的源代码。
C语言程序设计:第5章 循环结构
12
do...while语句(cont...)
课堂练习: 1.输出1---n之间的数,其中n从键盘输入。
int main(void) {
//1.定义变量i和n //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:输出i的值 return 0; }
} 相当于 while(1) {
}
26
小结
❖for(i=m;i<n;i++)//循环次数:n-m次 ❖for(i=m;i<=n;i++)//循环次数:n-m+1次
27
循环语句的练习
课堂练习: 1.输出n---1之间的数,其中n>1且n从键盘输入。 2.计算1*2*3*...*n的值(n的阶乘n!), 其中n从键盘输入。 3.计算10- 1/2 - 1/3 -....1/n的值 以上练习分别以while、do...while、for语句实现
int main(void) {
//1.定义变量i,n,sum //2.输入n的值 //3.思考循环的开始条件:i从1开始 //4.思考循环的结束条件:i++,i > n //5.循环的条件:i<=n //6.循环要做的事情:累加i的值 //7.输出计算结果 return 0; }
24
for语句(cont...)
{
sum = sum + i;
if(sum > 100)break;
Python语言程序设计第五章循环结构程序设计
14
第5章
循环结构程序设计
5.2 for语句 结构
1. for语句一般形式: for 目标变量 in 序列对象: 循环体语句 说明:
for语句的首行定义了目标变量和遍历的序 列对象,后面是需要重复执行的语句块。语 句块中的语句要向右缩进,且缩进量要一致。
15
第5章
循环结构程序设计
注意:
(1)for语句是通过遍历任意序列的元素来建立 循环的。 (2)for 语句也支持一个可选的else块,一般格 式如下: for 目标变量 in序列对象: 语句块 else: 语句
5
第5章
循环结构程序设计
在while语句中使用else子句
while exp: 循环体 else: 语句
Python可以在循环语句中使用else子句,即构 成了while.......else循环结构。
6
第5章
循环结构程序设计
例 :求
100
n 1
n
开始 sum,n=0,1 n<=100
1)问题分析:
29
第5章
循环结构程序设计
5.4 循环控制语句
有时候我们需要在循环体中提前跳 出循环,或者在某种条件满足时,不执行 循环体中的某些语句而立即从头开始新的 一轮循环,这时就要用到循环控制语句 break、continue和pass语句。
30
第5章
循环结构程序设计
(1) break语句
一般格式 break 功能
371printdddijk40728python语言程序设计第5章循环结构程序设计第5章循环结构程序设计循环结构程序设计51while语句当型循环52for语句结构53循环的嵌套54循环控制语句55循环结构程序举例2第5章循环结构程序设计循环结构的基本类型exptaf
第5章 循环结构程序设计
输入学生2的三门课成绩,并计算平均值后输出
scanf(“%f,%f,%f”,&s1,&s2,&s3);
aver=(s1+s2+s3)/3;
printf(“aver=%7.2f”,aver); 要对50个学生进行相同操作
重复50次
大多数的应用程序都会包含循环结构
循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句下面的一个语句
5.4用for 语句实现循环
for(i=1;i<=100;i++) sum=sum+i; 等价于 用for语句更简单、方便 i=1; while(i<=100) { sum=sum+i; i++; }
要向计算机输入全班50个学生的成绩
分别统计全班50个学生的平均成绩 求30个整数之和 教师检查30个学生的成绩是否及格
5.1为什么需要循环控制
例如:全班有50个学生,统计各学生 三门课的平均成绩。
输入学生1的三门课成绩,并计算平均值后输出 scanf(“%f,%f,%f”,&s1,&s2,&s3); aver=(s1+s2+s3)/3; printf(“aver=%7.2f”,aver);
n 1
100
5.3用do---while语句实现循环
解题思路:
sum=0 i=1 sum=sum+i i=i+1
八年级信息技术教案第五章循环结构程序设计
八年级信息技术教案第五章循环结构程序设计第五章循环结构程序设计节循序渐进一、学习目的.初步掌握计数循环、条件循环两种语句的格式和功能。
.初步掌握简单循环结构程序的设计方法。
.理解程序的循环结构的概念。
二、教学重点掌握计数循环、条件循环两种语句的格式和功能。
三、教学难点掌握简单循环结构程序的设计方法。
四、教学方法.演示法。
.实践法。
五、教学手段与教学媒体多媒体网络教室。
六、课时安排课时。
七、教学过程教学内容、步骤与方法二、学习指导.计数循环语句格式:FoR循环变量=初值To终值STEP步长语句组NEXT循环变量FoR语句为循环说明语句,NEXT语句为循环终端语句。
FoR和NEXT后面的循环变量必须相同。
初值、终值和步长都是数值表达式。
步长为1时,STEP可省略不写。
功能:根据FoR语句说明设定的循环次数重复执行循环体。
其具体执行过程可用图5-4-l表示。
图5—4—1其中循环变量超过终值的规则是:步长为正,大于终值;步长为负,小于终值。
一般地循环次数可用下列公式计算:循环次数=INT/步长)+1.条件循环语句格式:DoHILE条语句组LooP功能:当条件成立时,执行Do和LooP之间的语句组,语句的下一句执行。
LooP否则终止循环,转到..计数循环程序设计关键是确定循环的次数和重复循环的操作;条件循环程序设计的关键是确定循环的条件和重复循环的操作三、应用实例.编程求1+2+4+8+16+……+2n的值解:此题的计算公式是一个和式,加数为2的乘方,可考虑用累加求和的方法来计算。
设累加变量为s,加数为2,=o…n。
构造一个关于的循环,重复执行s←s+2^,即可算出和式的值。
根据分析,可编程序如下:INPUTNLETS=0FoR=oToNLETS=S+2^NEXTPRINT“S=”:SEND运行结果如下:?63S=1.844674E19数列各项为2的0、l、2……n次乘方,即乘数始终为2的累乘积,可构造一个n次循环,用卜T*2累乘依次生成数列各项,用S←s+T依次累加各项。
循环结构程序设计
Courseware template
5.3 for循环
使用for循环结构应注意以下几点: q 用for循环结构也具有先判断,后执行的特点。for循环结构相当
如下形式的while结构: 表达式1; while (表达式2) 循环体 表达式3;
q 从语法上看,for的三个成分都是表达式,它们之间都以分号; 隔开。
On the evening of July 24, 2021
Courseware template
5.2 do-while循环
【例5.3】用do-while循环结构实现例5.1。 main( ) {int n,i,s; printf("\nEnter n:"); scanf("%d",&n);
i=1;s=1; do { s=s*i;
【例5.4】用for循环结构实现例5.1。 main() { int n,i,s;
printf("\nEnter n:"); scanf("%d",&n); for (i=1,s=1;i<=n;i++)
s=s*i; printf("\nn=%d",s); }
On the evening of July 24, 2021
On the evening of July 24, 2021
Courseware template
5.3 for循环
q 关键字for的三个表达式允许部分或全部省略,但其中的两个分 号不能省略,否则,系统将报错。需要注意: v 当省略表达式1时,在进入for循环之前应该有给循环控制变 量赋初始值的语句; v 当省略表达式3时,应该在循环体内有修改循环控制变量的值 的语句,以保证循环能够正常结束。 例如: for(i=1,s=1;i<=n;) { s=s*i;; i++; } v 当表达式2或三个表达式全部省略时,应该在循环体内设置相 应的语句来结束循环,否则程序始终认为判断条件成立,循 环将无终止地执行下去,即形成了所谓的死循环。
C语言程序设计第5章-循环结构程序设计ppt课件
while(i<=k && !flag)
if(n % i==0) flag=1;
else i=i+1;
if(!flag)
printf("%d is a prime
number.\n",n);
else
printf("%d is not a prime
number.\n",n);
}
.
返回本章首页
第5章 循环结构程序设计
【例5_1】用while语句求p=n!
#include<stdio.h>
int main()
{ int i=1,p=1; //循环初始化部分 while(i<=5) //循环控制部分
{ p=p*i; //循环体语句 i++; //循环修改部分
}
printf("5!=%d\n",p);
return 0;
10-3,则再执行循环体,把 term 值赋给term1.然后再累加 到s中去。可以看出:程序中 term1代表当前要累加的项, term代表下一项,如果这两项 之差未超过10-3,就将下一项 加到s 中。
第5章 循环结构程序设计
运行结果:
printf("%d\n",sum);
sum = 5050
}
while语句和用do-while语句的比较:
一般情况,用while循环语句和用do -while循环语句处理问 题时,若循环体部分一样,结果也一样。但是如果while循 环语句循环条件一开始为“假”,则循环结果不同。while 循环语句一次也不执行,而do -while循环语句不论条件是 否成立,先执行一次循环体语句。
循环变量不增值。无终止地执行循环体。
例5-7用for语句求1 + 2 + 3 + … + 100
#include <stdio.h> void main() {
int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i;/*实现累加*/ printf("sum=%d\n",sum); } 程序运行的结果为: sum=5050 解析:先执行变量赋初值,然后判定循环继续条件, 如果为“真”,执行循环体语句,i 为运算项目和循 环变量,执行完一次,增加一次,最后累加和。
if(n%3!=0) /*循环体*/
printf("%5d",n);
}
§5.4 多重循环
• 当循环中的内嵌语句是循环语句时,称为循 环的嵌套使用。内嵌的循环中嵌套循环,称 为多重循环。
C语言程序设计技术基础
第5章 循环结构程序设计
第5章 循环结构程序设计
5.1 while 循环语句 5.2 do while循环语句 5.3 for循环语句 5.4 多重循环 5.5 break语句与continue语句 5.6 几种循环语句的比较 5.7 循环结构程序举例
c语言第5章循环结构程序设计课件
第五章 循环结构程序设计
典型例题(例5-8) :求两个整数的最大公约数、最小公倍数
12 8 4 mn r
84
0
mn r
最大公约数 4 最小公倍数 12*8/4=24
求最大公约数的N-S流程图
辗转相除法
7
第五章 循环结构程序设计
void main( )
{ int n, m, nm, r, t; printf( " Enter m, n= ? " ) ; scanf( " % d% d" , & m, & n) ; nm= n* m; if ( m< n)
例如: for(i=1;i<=n;) { t=t*i; i++; } (4)可以省略表达式1和表达式3,只有表达式2 , 即只给循环条件。
i=1; for(;i<=n;)
{t=t*i; i++;}
14
第五章 循环结构程序设计
(5) 3个表达式都可省略。 例如: for(;;) 语句 相当于 while(1)语句。
3
第五章 循环结构程序设计
例: 编程序求: s=1+2+3+……+100
main()
{ int s=0,i=1;
while (i<=100) { s=s+i;
思考:如何求n!
i++; }
printf("S=%d",s); }
4
第五章 循环结构程序设计 二、 do...while语句
Do-while语句的一般形式为:
(1) while( ) {… while( ) {…}
C语言程序设计循环结构程序设计
假
体现式
真
语句
假如体现式旳值一开始就为0,则语 句一次也不会被执行。
上一页
下一页
while语句举例
问题: 求学生旳平均成绩,以输入负数成绩为结束
算法分析:
1. 定义变量score存储学生成绩,定义s=0存储累加旳成绩,
定义n=0统计录入旳成绩数目。
2. 输入第一种学生旳score
3. 若score>=0,执行第4步,不然执行第7步
上一页
下一页
例: 求 1+2 +…+99
分析:用变量i从1到99循环, 把i旳值累加到变量s中,最 终输出s旳值。
程序如下:
#include<stdio.h> main( ) { int i,s=0;
for(i=1;i<=99;i++) s=s+i;
printf(“s=%d”,s); }
上一页
下一页
在某些情况下,for语句中旳体现式1、2、3都能够 省略,而改用其他旳方式来实现这些功能。我们还用 上面旳例子阐明for语句省略体现式旳情形。
上一页
下一页
1.省略体现式1: #include<stdio.h> main( ) { int i=1,s=0;
for(;i<=99;i++) s=s+i;
因为do-while语句至 少要被执行一次,特
别要注意n和s旳取值 问题!
s=s+score;
}while(score>=0);
if(n>1) printf (“ \n %f” ,(s-score)/(n-1));
else printf(“no student score!”);
C语言程序设计课件第5章 循环结构程序设计
完整版ppt
19
➢break语句的一般形式为: break;
只能用于循环语句和switch 语句之中,而不能单独使用
完整版ppt
20
5.5.2 用continue语句提前结束 本次循环 P126
➢ continue语句的一般形式为:
continue;
➢其作用为结束本次循环,即跳过循环体 中下面尚未执行的语句,接着进行下一 次是否执行循环的判断。
循环体
完整版ppt
7
while语句的一般形式如下:
while (表达式) 语句
循环条件表达式
“真”时执行循环体语句 “假”时不执行
表达式
0(假)
while循环的特点是: 先判断条件表达式 后执行循环体语句
非0(真) 语句
完整版ppt
8
P117
5.2.2 用do…while语句实现循环
➢do---while语句的特点:先无条件地执
第5章 循环结构程序设计 P115
5.1 程序中需要用循环结构
5.2 用while语句和do…while语句实现循环 5.3 用for语句实现循环
5.4 循环的嵌套
5.5 提前结束循环
5.6 几种循环的比较
5.7 程序举例
5.8 提高部分
完整版ppt
1
5.1 程序中需要用循环结构 P115
➢现实生活中许多问题是需要重复处理
➢for语句的一般形式为 for(表达式1;表达式2;表达式3) 语句
作为循环的调整器,例如 使循环变量增值,它是在 执行完循环体后才进行的
完整版ppt
14
➢for语句的执行过程:
(1) 先求解表达式1 (2) 求解表达式2,若其值为真,执行循环体, 然后执行下面第(3)步。若为假,则结束循环, 转到第(5)步 (3) 求解表达式3 (4) 转回上面步骤(2)继续执行 (5) 循环结束,执行for语句下面的一个语句
第五单元--循环结构程序设计
任务4:九九乘法表——循环嵌套的运用
特别提示
工作任务
思路指导
相关知识
任务实施
工作任务
小学生的九九乘法口诀 “满九九乘法表”,是一个九行九列的表格,行和列均从1变化到9,如5-1表所示。
1
2
3
4
5
6
7
8
9
1
1*1=1
2*1=2
3*1=3
4*1=4
5*1=5
6*1=6
7*1=7
8*1=8
9*1=9
任务实施
#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);sum+=scr; i++; }ave=sum/n;printf(“参赛队总成绩是评委打分平均分:%d”,ave);}
特别提示
while语句和do-while语句的区别: (1)在循环条件和循环体相同的情况下while后面的表达式第一次的值为“真”时,两种循环得到的结果相同。 (2)当while后面的表达式第一次的值为“假”时,while语句一次也不执行,而do-while 语句可以顺利执行一次。
图5-1 while语句流程
相关知识
3.while语句的进一步说明(1)循环体如果包含一个以上的语句,应该用大括号括起来,以复合语句的形式出现。(2)在循环中应有使循环趋向于结束的语句,即设置修改条件的语句。例如:本例中的次数变量i++;(3)while语句的特点是先判断表达式的值,然后决定是否执行循环体中的语句,如果表达式的值一开始为假(即值为0),则退出循环,并转入循环体的后续语句执行。如果表达式的值始终为真(即值为1),则是永久循环“死循环”。
北京航空航天大学《C语言程序设计》课件-第五章循环结构程序设计
2023/4/2
5.3 do-while语句
15
语句一般格式
do
{语句组} while (表达式);
功能:
– 先执行内嵌语句(循环体),之后计算 表达式的值,不为0(逻辑真)时,再 执行循环体并判断条件,直到表达式的 值为 0 结束循环,转去执行while下面 的语句。
2023/4/2
do-while循环的算法
for(n=100;n<=200;n++) {
if (n%7!=0) continue;
printf("%6d",n); j++; if (j%10==0)
printf("\n"); } printf(" \n j=%d\n",j); }
29
2023/4/2
5.5.2 循环中break的应用
30
功能:
}
无循环体
} 循环体
2023/4/2
5.5 循环结构中的跳转语句
25
有如下三种语句实现跳转: – continue语句 – break语句 – goto语句
功能:在循环语句的循环体中使用,可 以进行循环的流程控制
2023/4/2
5.5.1 continue语句及应用
26
功能:
– 中断循环体的本次执行(即跳过循环体中尚未 执行的语句),立即开始执行下一次循环。
– 利用break语句能够强迫终止本层循环, 转到后续语句执行。
while语句
表达式? N
Y
… break;
…
do-while语句
… break;
…
表达式? N
Y
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
//循环