c语言永真循环格式,第3章 C语言 循环程序设计.doc

第3章 C语言 循环程序设计

第3章 循环程序设计

本章重点

循环的概念

while及do-while循环的执行过程

while循环的应用

for循环的执行过程

for循环语句的变形及应用

循环的嵌套

3.1 循环的概念

循环是程序设计中非常常见的格式之一,所谓循环就是根据某个条件反复执行一系列指令。

3.2 while循环

while循环的格式为:

while(条件表达式)

{

循环

3.1 while循环

注意:程序中反复执行的一段程序被称为循环体,一般以{ }括起来。

例3.1 计算1+2+3+…….+99+100的和。

分析:计算1到100的和,是重复做100次加法,首先定义变量sum及用于循环变量i,每循环一次,做一次sum=sum+i运算,且循环变量i自增长1,当i增加到101时循环结束。程序流程图如图3.2所示。

i是这个循环结构的循环变量,以它来控制循环的继续或者退出。

图3.2 流程图

编辑源程序代码3-1.c

#include

int main( )

{

int i,sum=0;

i=1;

while(i<=100)

{

sum=sum+i;

i++;

}

printf(“sum=%d\n”,sum);

return 0;

}

注意: 如果while中的循环体有二条以上的语句构成,用‘{’与‘}’构成一个程序块,while中的条件表达式后不能有‘;’号。

思考:求100+101+102+…+200的和。

例3.2 输出1到100之间的所有奇数。

图3.3 输出1到100的所有奇数流程图

编辑源程序代码3-2.c

#include

int main( )

{

int i=1;

while(i<=100)

{

printf("%4d " , i);

i+=2;

}

printf("\n");

return 0;

}

例3.3 求5!的值 (5!=1×2×3×4×5)。

分析:设乘积t的初始值为1,乘数项i的初试值也为1,每循环1次,i与t相乘,得到一个新的t,然后i的值增1,再与t相乘,如此反复直到i>5。退出循环后输出t即为所求值。流程图如图3.4所示。

图3.4 求5!的流程图

编辑源程序代码3-3.c

#include

int main( )

{

int i=1 , t=1 ;

while (i<=5)

{

t*= i ;

i++;

}

printf("5! =%d\n", t);

return 0;

}

例3.4 将求s=1+1/2+1/3+1/4+……+1/n,直到和s大于3为止,求此时的s与n的值。

分析:设置变量n,每循环1次n的值增1,s变量用来存放各数的和,当s的值大于3时,循环结束。因此在while条件里设置s<=3。流程图如图3.5所示。

图3.5 流程图

编辑源程序代码3-4.c

#include

int main( )

{

int n=1 ;

double s=0;

while (s<=3)

{

s+=1.0/n;

n++ ;

}

printf("s=%lf n=%d\n", s,n-1);

return 0;

}

模仿例3.4,求s=1-1/2+1/3-1/4+……的值,直到误差<0.00001

3.3 do-while循环

do~while循环是后判断循环,不论循环的条件是否满足,循环体至少应执行一次,do~while循环的语句格式为:

do

{

循环体

}while(表达式);

语句执行流程图如图3.6所示。

图3.6 语句执行流程图

例3.5 输入任意一个正整数,按低位开始输出它各个位置上的数字。例如:531输出135。

分析:先求出531除以10的余数,得到1;将531除以10得到53;再求53除以10的余数,得到3,将53除以10,得到5。这样将1,3,5全部分解出来。

执行步骤:设被除数m,余数n,进行下列运算:

(1) n=m%10;

(2) m=m/10;

(3) 循环的条件为m!=0。

流程图如图3.7所示。

图3.7 流程图

编辑源程序代码3-5.c

#include

int main( )

{

long m , n;

pringf(“请输入一个正整数:”);

scanf ("%ld",&m);

do

{

n=m%10 ;

m=m/10 ;

printf("%ld, ", n);

} while(m);

return 0;

}

3.4 for循环

C语言中的for循环语句应用比较灵活,虽然主要用于定数循环,但也可以不定数循

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值