- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 循环结构程序的设计;本章概述;本章的学习目标;主要内容; 5.1 while语句和do-while语句;例 5.1 求1+3+5+7+…+99的值;;5.1.2 do-while语句;执行过程:
(1)先执行循环体语句组。
(2)计算“循环继续条件”表达式。若“循环继续条件”表达式的值为非 0(真),则转向(1)继续执行;否则,转向(3)。
(3)执行do-while的下一条语句。;例5.2 从键盘输入若干个数求和,当和大于200时停止执行。
# include <stdio.h>
int main()
{int x,sum=0;
do
{scanf("%d",&x);
sum+=x;
}while(sum<=200);
printf("sum=%d\n",sum);
return 0;
};本题思路:为了实现逆序输出一个正整数,需要把该数
按逆序逐位拆开,然后输出。从一个数中分离一位数,
可以对10求余.; 5.2 for语句; for语句是C语言中最灵活也是应用最广泛的循环结构,
可以替代while和do-while语句;1、for后面括号里的3个表达式都可以省略,但其中
的两个分号不能省略
for( ; ; ) printf(“######”);;5、若省略表达式1和表达式3,只有表达式2,
即只给循环条件,则在这种情况下,完全等
同于while语句
i=1;
sum=0;
for(;i<=10; ) {sum+=i; i++;} ;例5.5 输入一行字符并计算出字符个数 ;5.3 嵌套循环结构; 思路: 九九乘法表,共有9行;我们可以用一个循环变量i来依次表示第i(1 ≤ i ≤9)行; 对于第i行来说,它又有i个等式, 可以用一个循环变量j来依次表示第j(1 ≤ j ≤i)个等式;第i行第j列的等式刚好是j和i相乘的式子。 ;例5.7 在计算机屏幕上输出如下图形。
*
***
*****
*******
*********
;5.4 break语句和continue语句;例5.8 输入一个正整数m,判断它是否为素数。;2、continue语句;例5.9 输入100个整数,求其中正整数之和 ;5.5 goto语句和用goto语句构成循环;goto语句与if语句一起构成循环结构,如下的例子即是二者组成的循环结构。
例5.10 用if语句和goto语句构成循环,求1+2+3+…+n的值。
# include <stdio.h>
int main()
{ int i,n,sum=0; i=1;
scanf(“%d”,&n);
loop: if(i<=n)
{sum+=i; i++;
goto loop;
}
printf("sum=%d\n",sum);
return 0;
}
goto语句可使程序的流程变的毫无规律、可读性差,在程序设计中尽量不用。;5.6 程序设计举例;例5.12 古代某工地需要搬砖块,已知男人一人
搬3块,女人一人搬2块,小孩两人搬1块。问用
45人正好搬45块砖,有多少种搬法。 ;# include <stdio.h>
int main()
{int men,women,child;
for(men=0;men<=45;men++)
for(women=0;women<=45;women++)
for(child=0;child<=45;child++)
if(men+women+child==45
&& men*3+women*2+child*0.5==45)
printf("men=%d women=%d child=%d\n",
men,women,child);
return 0;
};改进后的程序如下:
# include <stdio.h>
int main()
{int men,women,child;
for(men=0;men<=15;men++)
for(women=0;women<=22;women++)
{ child=45-men-women;
if(men*3+women*2+child*0.5==45)
printf("men=%d women=%d child=%d\n",
文档评论(0)