c语言第5章-循环结构程序设计.ppt





《c语言第5章-循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《c语言第5章-循环结构程序设计.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5 5章章 循环结构程序设计循环结构程序设计1#include”stdio.h”Int main()float x,y;scanf(“%f”,&x);if(x1)y=x*x+1;elseif(xb)max=a;min=b;else max=b;min=a;if(maxc)min=c;printf(“%d,%dn”,max,min);Return 0;第第5 5章章 循环结构程序设计循环结构程序设计3#include”stdio.h”int main()int a,b,c;scanf(“%d%d%d”,&a,&b,&c);if(a+bc&a+cb&b+ca)if(a=b&b=c)printf
2、(“it is 等边”);elseif(a=b|b=c|c=a)printf(“it is 等腰”);else printf(“it is 一般”);else printf(“不构成三角形”);return 0;第第5 5章章 循环结构程序设计循环结构程序设计4#include void main()int i,sum;sum=0;for(i=1;i=100;i+)sum=sum+i;printf(sum=%5dn,sum);举例举例求求1100的累加和。的累加和。#include void main()int i,sum;for(sum=0,i=1;i=100;i+)sum=sum+i;pr
3、intf(sum=%5dn,sum);#include void main()int i,sum;for(sum=0,i=1;i=100;sum=sum+i,i+);printf(sum=%5dn,sum);第第5 5章章 循环结构程序设计循环结构程序设计5第第 5 5 章章循环结构程序设计循环结构程序设计第第5 5章章 循环结构程序设计循环结构程序设计6求1+2!+3!.+20!#include stdio.hmain()float n,s=0,t=1;for(n=1;n=20;n+)t=t*n;s=s+t;printf(1+2!+3!.+20!=%en,s);练习:练习:1(12)()(1
4、23)。()。(123。10)+2/3+3/5+.第第5 5章章 循环结构程序设计循环结构程序设计7#includestdio.hvoid main()int a,n,i,sum,jiashu;scanf(%d,%d,&a,&n);sum=0;i=1;jiashu=a;for(i=1;i=n;i+)sum=sum+jiashu;jiashu=10*jiashu+a;printf(sum=%dn,sum);求求a+aa+aaa+aaaa+aaa.aa(有有n个个a)第第5 5章章 循环结构程序设计循环结构程序设计8主要内容主要内容5.1 while5.1 while语句语句5.2 do-whil
5、e5.2 do-while语句语句5.3 for5.3 for语句语句 5.4 5.4 流程转向语句流程转向语句breakbreak和和continuecontinue5.5 5.5 循环嵌套循环嵌套5.6 5.6 循环结构程序设计举例循环结构程序设计举例第第5 5章章 循环结构程序设计循环结构程序设计9思考思考求求1100的累加和。的累加和。分析分析换一种思路:换一种思路:首先设置一个累计器首先设置一个累计器sum,其初值为,其初值为0,利用,利用sum+=n来计算(来计算(n依次取依次取1、2、100),只要解决以下),只要解决以下3个问题即可:个问题即可:(1)将)将n的初值置为的初值置
6、为1;(2)每执行)每执行1次次“sum+=n;”后,后,n增增1;(3)当)当n增到增到101时,停止计算。此时,时,停止计算。此时,sum的值就是的值就是1100的累的累计和。计和。sum=1+2+100;.sum=sum+n;循环的引入循环的引入第第5 5章章 循环结构程序设计循环结构程序设计10格式格式while (循环条件表达式循环条件表达式)循环体语句循环体语句P79说明说明1、循环体如果包含一个以上的语句,必须使用复合语句形式。、循环体如果包含一个以上的语句,必须使用复合语句形式。2、在循环体中,必须有使循环条件趋向于不满足(假)的语句。、在循环体中,必须有使循环条件趋向于不满足
7、(假)的语句。3、先判断表达式,后执行语句。、先判断表达式,后执行语句。功能功能当表达式成立(表达式的值为非当表达式成立(表达式的值为非0值)时,执行值)时,执行while语句中的循语句中的循环体语句。环体语句。执行执行过程过程表达式表达式循环体语句循环体语句不成立不成立 成立成立 5.1 while语句语句?第第5 5章章 循环结构程序设计循环结构程序设计11sum=凵凵5050举例举例例例5.1 求求1100的累加和。的累加和。P71#include void main()int i,sum;i=1;sum=0;while (i=100)sum=sum+i;i+;printf(sum=%5
8、dn,sum);思考思考1、如果去掉循环体中的大括号,执行过程将会怎样变化?、如果去掉循环体中的大括号,执行过程将会怎样变化?2、在循环体中,使循环条件趋向于不满足(假)的语句是哪条、在循环体中,使循环条件趋向于不满足(假)的语句是哪条??1 求求150的累加和的累加和.2 求求1100的奇数和的奇数和.3 求求1100的偶数和的偶数和.第第5 5章章 循环结构程序设计循环结构程序设计12举例举例例例5.2 设设s=123n,求,求s不大于不大于400000时时最大的最大的n。P72#include int main()int n=1;long int s=1;while(s=400000)n
9、=n+1;s=s*n;printf(不大于不大于400000时的最大时的最大n为:为:%dns值为:值为:%ldn,n-1,s);return 0;不大于不大于400000时的最大时的最大n为:为:9 s值为:值为:3628800前前n项项的乘积的乘积运行结果:运行结果:第第5 5章章 循环结构程序设计循环结构程序设计13举例举例例例5.3 现有某班现有某班20名学生的名学生的C语言成绩,求该班学生的语言成绩,求该班学生的C语言语言的平均成绩。的平均成绩。P72请输入学生成绩:请输入学生成绩:23凵凵89凵凵67凵凵78凵凵94凵凵56凵凵34凵凵83凵凵90凵凵67凵凵48凵凵72凵凵81凵
10、凵65凵凵74凵凵87凵凵73凵凵67凵凵90凵凵98 20名学生的名学生的C语言平均成绩为:语言平均成绩为:71.8#include int main()float total=0,score,average;int i=1;printf(请输入学生成绩:请输入学生成绩:);while(i=20)scanf(%f,&score);total=total+score;i+;average=total/20;printf(20名学生的名学生的C语言平均成绩为:语言平均成绩为:%.1fn,average);return 0;total:前前i名学生名学生的成绩的的成绩的和和 score:每一名学每
11、一名学生的成绩生的成绩average:平均成绩平均成绩运行结果:运行结果:第第5 5章章 循环结构程序设计循环结构程序设计14举例举例例例5.4 从键盘输入一个非负整数从键盘输入一个非负整数m,判断,判断m是否是素数。是否是素数。P73素数(质数)素数(质数):只能被只能被1和它本身整除的数。和它本身整除的数。判别方法:判别方法:57:若若256之间的每一个数都不能整除之间的每一个数都不能整除56,则,则57为素数,否则为素数,否则57不是素数。不是素数。m,k=m-1,i=2k:若每一个若每一个 i 的值都不能整除的值都不能整除m,则则m为素数,否则为素数,否则m不是素数。不是素数。flag
12、=0;k=m-1;i=2;while(i=k&flag=0)if (m%i=0)flag=1;i+;if(flag=0)printf(“yes!”);else printf(“no!”);k=m-1;i=2;while(i=k+1)printf(“yes!”);else printf(“no!”);第第5 5章章 循环结构程序设计循环结构程序设计15#include math.h#include stdio.hint main()int m,flag=0,i=2;printf(请输入一个非负整数:请输入一个非负整数:n);scanf(%d,&m);while(isqrt(m)&flag=0)i
13、f(m%i=0)flag=1;/m不是素数,修改不是素数,修改flag的值的值else i+;if(flag=0)printf(%d是素数。是素数。n,m);else printf(%d不是素数。不是素数。n,m);return 0;第第5 5章章 循环结构程序设计循环结构程序设计16求两个非负整数求两个非负整数m和和n的最大公约数和最小公倍数。的最大公约数和最小公倍数。#include int main()int m,n,t;printf(请输入两个非负整数:请输入两个非负整数:);scanf(%d%d,&m,&n);t=(mn)?m:t;while(t%m!=0|t%n!=0)/m、n能否
14、整除能否整除t t+;printf(最小公倍数为:最小公倍数为:%dn,t);return 0;找找m、n中较小中较小数数找找m、n中较中较大数大数例例5.5(P74)第第5 5章章 循环结构程序设计循环结构程序设计17格式格式do 循环体语句循环体语句while (循环条件表达式循环条件表达式);P85说明说明1、循环体如果包含一个以上的语句,必须使用复合语句形式。、循环体如果包含一个以上的语句,必须使用复合语句形式。2、在循环体中,必须有使循环条件趋向于不满足(假)的语句。、在循环体中,必须有使循环条件趋向于不满足(假)的语句。3、先执行循环体语句,后判断表达式的值。、先执行循环体语句,后
15、判断表达式的值。含义含义执行执行do-while语句中的循环体语句,直到表达式的值为假(语句中的循环体语句,直到表达式的值为假(0)才跳出)才跳出循环。循环。执行执行过程过程表达式表达式循环体语句循环体语句假假真真至少执至少执行一次行一次5.2 do-while语句语句第第5 5章章 循环结构程序设计循环结构程序设计18举例举例例例5.6 求求1100之间的奇数和。之间的奇数和。P76#include void main()int i,sum;i=1;sum=0;do sum=sum+i;i+;i+;while (i=100);printf(sum=%5dn,sum);思考思考1、如果去掉循环
16、体中的大括号会怎样?、如果去掉循环体中的大括号会怎样?2、在循环体中,使循环条件趋向于不满足(假)的语句是、在循环体中,使循环条件趋向于不满足(假)的语句是哪条?哪条?凵凵25002500运行结果:运行结果:第第5 5章章 循环结构程序设计循环结构程序设计19举例举例while和和do-while循环的比较。循环的比较。#include void main()int i,sum=0;scanf(%d,&i);while(i=10)sum=sum+i;i+;printf(sum=%dn,sum);#include void main()int i,sum=0;scanf(%d,&i);do su
17、m=sum+i;i+;while(i=10);printf(sum=%dn,sum);输入:输入:1 输入:输入:11 sum=55输出:输出:sum=55sum=0输出:输出:sum=11此程序的此程序的功能?功能?什么情况下两什么情况下两者结果相同?者结果相同?第第5 5章章 循环结构程序设计循环结构程序设计20格式格式for (表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句 P87for (循环变量赋初值;循环条件;循环变量增值循环变量赋初值;循环条件;循环变量增值)语句语句 执行执行过程过程(1)先求解表达式先求解表达式1;(2)求解表达式求解表达式2,若其值为真,则,若
18、其值为真,则 执行循环体语句,然后执行第(执行循环体语句,然后执行第(3)步;)步;若为假,则结束循环,转到第(若为假,则结束循环,转到第(5)步;)步;(3)求解表达式求解表达式3;(4)转向步骤(转向步骤(2););(5)循环结束,执行循环结束,执行for语句下面的一语句下面的一个语句。个语句。表达式表达式2循环体语句循环体语句假假 真真求解表达式求解表达式1求解表达式求解表达式35.3 for语句语句第第5 5章章 循环结构程序设计循环结构程序设计21sum=5050举例举例求求1100的累加和。的累加和。#include void main()int i,sum;sum=0;for(i
19、=1;i=100;i+)sum=sum+i;printf(sum=%5dn,sum);?1 求求155的累加和的累加和.2 求求1100的奇数和的奇数和.3 求求1100的偶数和的偶数和.第第5 5章章 循环结构程序设计循环结构程序设计22for (表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句 说明说明三个表达式都可三个表达式都可以省略。以省略。表达式表达式2循环体语句循环体语句假假 真真求解表达式求解表达式3表达式表达式1省略省略需在循环体外赋初值需在循环体外赋初值循环体语句循环体语句求解表达式求解表达式1求解表达式求解表达式3表达式表达式2省略省略恒真循环恒真循环表达式表达
20、式2循环体语句循环体语句假假 真真求解表达式求解表达式1表达式表达式3省略省略两种情况两种情况?结果?结果?第第5 5章章 循环结构程序设计循环结构程序设计23说明说明1i=1;for(;i=10;i+)sum=sum+i;2for (i=1;i+)sum=sum+i;?3for (i=1;i=10;)sum=sum+i;i+;for(i=1;i=10;i+)sum=sum+i;表达式表达式1可以省略,可以省略,但其后的分号不但其后的分号不可以省略。可以省略。没有循环结没有循环结束条件,构束条件,构成了死循环成了死循环for(i=1;i=10;i+)sum=sum+i;第第5 5章章 循环结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 循环 结构 程序设计

限制150内