chap循环结构程序设计实用.pptx
《chap循环结构程序设计实用.pptx》由会员分享,可在线阅读,更多相关《chap循环结构程序设计实用.pptx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序中的重复第1页/共39页程序中的重复计数循环:可在循环执行前确定重复的次数。如明确告知需要处理n个数据等。标记控制循环:用一个正常情况下不会出现在数据中的值来作为循环结束的标记。如输入学生成绩时以负数作为结束标记。条件循环:重复操作直到期望的条件满足。如累加的和达到某一数值,或者计算的精度达到某一数值。文件结束控制循环:用EOF来判断输入是否结束。第2页/共39页while语句1.计数循环【例4-1】学生成绩求和。编写程序,从键盘输入10位同学的成绩,计算他们的总分。int sum=0;int i=0;int x;printf(Input 10 score:n);while(i10)/*判
2、断循环条件*/scanf(%d,&x);/*读入一个成绩*/sum+=x;i+;第3页/共39页while语句【例4-2】累加运算。计算1+2+3+100int sum,i;sum=0;/*设置累加值的初始值*/i=1;/*设置循环控制变量的初始值*/while(i=100)sum=sum+i;/*累加*/i+;第4页/共39页while语句【例4-3】累乘运算。本题计算1*2*3*4*5.int power,i;power=1;/*设置乘积的初始值*/i=1;/*设置循环控制变量的初始值*/while(i=0)/*若没有遇到标记值(负数)*/*则执行循环体*/sum=sum+score;n+
3、;scanf(%f,&score);/*读取下一个数据*/第6页/共39页while语句【例4-5】从键盘输入若干字符,统计其中字母、数字以及其他字符的个数。用换行符结束输入 char ch;int letter=0,digit=0,other=0;ch=getchar();/*读取一个字符*/while(ch!=n)/*若没有遇到标记值(换行符n)*/*则执行循环*/if(ch=a&ch=A&ch=0&ch=1e-6)/*判断条件*/pi=pi+t;/*将当前分数项累加到pi上*/n=n+2;/*下一项的分母以步长2自增*/sign=-sign;/*符号求反*t=sign/n;/*构建下一个
4、分数项*/pi=4*pi;第8页/共39页while语句【例4-8】设计一个程序,输入任意长度的正整数,然后逆序输出。如输入3765,则输出5673。int num,i;scanf(%d,&num);while(num!=0)i=num%10;/*取当前数据的末位数*/printf(%d,i);/*输出当前的末位数*/num=num/10;/*对原数除以10取整,相当于截断末位数*/第9页/共39页while语句【例4-6】scanf函数的返回值。int num1,num2,num3;int a,b;a=scanf(%d,&num1);/*/b=scanf(%d%d,&num2,&num3);
5、/*/printf(Num1=%d,Num2=%d,Num3=%dn,num1,num2,num3);printf(a=%d,b=%dn,a,b);第10页/共39页while语句 4.文件结束控制循环【例4-9】输入一些整数,求出它们的平均值。int x,sum=0;int n=0;/*统计实际输入的数据个数*/while(scanf(%d,&x)!=EOF)/*文件结束控制循环*/sum=sum+x;/*累加*/n+;printf(Average=%fn,(double)sum/n);第11页/共39页while语句【例4-10】输入两个整数,比较它们的大小关系 int a,b;while
6、(scanf(%d%d,&a,&b)!=EOF)if(ab)printf(%d%dn,a,b);else if(ab)printf(%d%dn,a,b);else printf(%d=%dn,a,b);第12页/共39页do-while语句【例4-11】用do-while语句求 1+2+100.int sum,i;sum=0;i=1;dosum=sum+i;i+;while(i0);第15页/共39页for语句【例4-14】用for语句求 1+2+100.int i,sum=0;for(i=1;i=100;i+)sum+=i;第16页/共39页for语句【例4-15】使用for语句求解数列1+
7、3+5+97+99的和。int sum,i;sum=0;for(i=1;i100;i+=2)sum=sum+i;第17页/共39页for语句【例4-16】求Fibonacci数列的前20项。这个数列有如下特点:第1、2个数都为1,从第3个数开始,每个数都是其前面两个数的和。int f,f1=1,f2=1;printf(%6d%6d,f1,f2);for(i=3;i=20;i+)f=f1+f2;/*递推公式,推出一个新值*/printf(%6d,f);if(i%5=0)printf(n);/*控制每行输出5个数*/f1=f2;f2=f;/*更新f1和f2,为下一次递推作准备*/第18页/共39页
8、for(表达式1;表达式2;表达式3)语句(l)表达式1、表达式2、表达式3可以是任何类型的表达式,它们之间用分号间隔。(2)表达式1只被执行一次,通常用来给循环变量赋初值,也允许在for语句外给循环变量赋初值,此时可以省略该表达式,但分号不能省略。(3)表达式3通常用来修改循环控制变量的值,表明循环控制变量每次变化的数值。关于for语句的用法以下几点值得注意:第19页/共39页for语句与while语句比较循环包括:初值、循环条件、循环体和步长for(表达式1;表达式2;表达式3)语句 等价为表达式1;while(表达式2)语句 表达式3;如果循环次数不确定,循环的控制需要结合其它条件并且条
9、件较为明确的情况下,可以使用while语句;如果指定了循环次数,则用for语句会使程序显得简洁、清晰。第20页/共39页break continue 和goto语句C语言提供了break while语句中break执行流程图do-while语句中break执行流程图for语句中break执行流程图第21页/共39页break语句举例#includevoid main()int a,n,i=1,sum=0;printf(请输入累加求和数的个数,遇到负数将退出!n);scanf(%d,&n);/*先输入一个数*/printf(请输入%d个整数:,n);while(i=n)/*一共要输入10个数,所
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- chap 循环 结构 程序设计 实用
限制150内