循环结构程序设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环结构程序设计
5.3 for 语句
循环结构程序设计
百鸡问题
公鸡每只5文钱,母鸡每只3文钱,3只小鸡1文钱。 现在用百钱买百鸡,问这100只鸡中,公鸡、母鸡 和小鸡各有多少只?

5钱
3钱
循环结构程序设计
1钱
设公鸡、母鸡、小鸡的数量分别为cock, hen,
chick;cock, hen, chick为整数且chick是3的倍数.
时,重复执行语句,直 到逻辑表达式的值为假, 跳出循环。 特点: 先判断表达式,后执行语句
循环结构程序设计
表达式 0
非0
语句
Leabharlann Baidu
循环结构程序设计
例5.1-1
循环结构程序设计
开始
#mi例naicnl5u().d1e-<2st求dio.h∑i2=>01。0i
sum=0;
{
i=1;
加数in的t i,范sum围=:0;i=1 ~ i=200,sum=0;
main() { int number,digit; printf("please input data:"); scanf("%d",&number); while (number!=0) { digit=number%10; printf("%d",digit); number=number/10; } }
循环结构程序设计
例5.4 输出10个 *号
#include <stdio.h>
main()
{ int i;
i=1;
/* 循环控制初值 */
while(i<=10) /*{循环体}*/
{ printf(“*”);
i++; /*逻辑表达式值可变*/
}
}
循环结构程序设计
i<=10
0
非0
打印星号
i++;
5.2 do-while语句
改变循环条件
for(表达式1;表达式2;表达式3) 语句
循环控制变量 赋初值
条件表达式
例 for(i=0;i<n;i++) { …… }
循环结构程序设计
计算表达式1
计算表达式2 0 非0
语句
计算表达式3
for 语句的其它形式
表达式1;
不判断循环条件, 成为死循环
for(表达式1 ;表达式2 ;表达式3 )
当i=1时:
当i=1时:
说su明m=:55当两者具有相同s的um循=5环5 体时
1. 当当iw=h11i时le :后面的表达式第1当次i=的11值时为: “真” 时sum,=两0 种循环得到的结果相sum同=。11
2. 否则,二者结果不相同。
main()
main()
{ int sum=0,i;
{ int sum=0,i;
第5章 循环结构程序设计
循环结构程序设计
当某段程序要重复执行时,使用循环结构 ——使程序精炼
C语言提供4种循环控制语句: ➢while语句 ➢do-while语句 ➢for 语句 ➢if-goto语句(不提倡多用)
循环结构程序设计
5.1 while语句
流程图
——“当型”循环结构
形式: While (条件表达式) 语句 执行过程:当表达式的值为真(非零)
scanf("%d",&i);
scanf("%d",&i);
while(i<=10)
do
{ sum=sum+i;
{ sum=sum+i;
i++;
i++;
}
}while(i<=10);
} printf("sum=%d",sum循)环;结构程}序设p计rintf("sum=%d",sum);
在do_while循环语句中需要注意,即与while循 环的不同点: 1.与while循环语句的区别,至少执行一次循环体 2.do_while循环语句中的while ( ) 后面有分号;
此程循环序结构输程序设入计 为0时仍有输出
例5.7. 求
∑。2#00innclude<stdio.h>
nm=1ain() {
int i,sum=0; i=1; do {
sum=sum+i; i++; } while (i<=200); printf("sum = %d\n", sum); }
循环结构程序设计
此程循序环结输构程序入设计为0时没有输出
程序二:用do-while语句实现
main() { int number,digit;
printf("please input data:"); scanf("%d",&number); do { digit=number%10;
printf("%d",digit); number=number/10; } while (number!=0); }
求和i=过1; 程:
i<= 200 N
sumwh=islue m(i<+=i;20i0+)+;
{
sum=ssuumm=+siu;mi++i+; ;
此时,sum=1; i=2; Y 此时,sum=1+2; i=s3;um+=i; i++;
sum=is+u+m; +i; i++; 此时,sum=1+2+3; i=4;
} …… }sumpr=insutfm("+sui;mi+=+%; d此\n时", ,ssuumm);=1+2+…+输19出9;siu=m200; sum=sum+i; 此i+时+;,sum=循1环+结2构程+序…设计+199+20结0;束i=201;
例5.2 读程序
循环结构程序设计
例5.3
分析: 偶数和放在even中, even=2+4+6…+100; 奇数和放在odd中, odd=1+3+5+…+99; 计数器n初值=1. while(n<100) {odd=odd+n; even=even+(n+1); n=n+2 }
问题归结为求不定方程组的整数解:
cockhenchick100
cock取值范围是1-20
hen取值范围是1-33
5*cock3*henchick/3100 chick取值范围是3-99
可用穷举法遍历所有cock, hen, chick的可能组合来求解
循环语句 ?
循环结构程序设计
for 语句
一般形式:
“直到型”循环
一般形式: do 语句 while(表达式);
语句
执行过程:先执行循环体语句, 再判断while中的表达 式,若为真,则继续执行 循环体,否则,执行 while后面的语句。
循环结构程序设计
表达式
非0
0
do-while语句流程
例5.6 任意输入一个整数,将该数各位倒序输出。
程序一:用while语句实现
{
语句; 表达式3;
}
循环结构程序设计
#m例inaic1nlu.()d求e<st∑d20,i0on .用h>for语句实现。 n=1
相关文档
最新文档