书签 分享 收藏 举报 版权申诉 / 58
上传文档赚钱

类型C语言程序设计基础课件第5讲循环结构.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4145106
  • 上传时间:2022-11-14
  • 格式:PPT
  • 页数:58
  • 大小:290.42KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言程序设计基础课件第5讲循环结构.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 基础 课件 循环 结构
    资源描述:

    1、循环结构循环结构 在人们所需处理的运算任务中在人们所需处理的运算任务中,常常需要用到循环结构常常需要用到循环结构,所谓所谓循环是指对同一个程序段重复执行若干次。被重复执行的部分循环是指对同一个程序段重复执行若干次。被重复执行的部分(由若干语句组成)称为由若干语句组成)称为循环体循环体。循环结构又称重复结构。循环结构又称重复结构。1 while 循环语句循环语句 2 dowhile 循环语句循环语句 3 for 循环语句循环语句 4 循环嵌套及注意的问题循环嵌套及注意的问题 循环结构循环结构 问题问题输出整数输出整数1-10输出整数输出整数1-100输出整数输出整数1-nprintf(“%d”,

    2、1);printf(“%d”,2);printf(“%d”,n);i=1;printf(“%d”,i);i+;printf(“%d”,i);i+;printf(“%d”,i);i+;i=1;while(i=10)printf(“%d”,i);i+;循环结构循环结构 语法:语法:while(表达式表达式)循环体循环体说明说明(1)(1)whilewhile是关键字。是关键字。(2)(2)循环体是多条语句循环体是多条语句,用用。非非0 while(表达式表达式)循环体循环体0循环结构循环结构 非非0 while(表达式表达式)循环体循环体0i=1;while(i=10);printf(“%d”,i

    3、);i+;循环条件循环条件改变循环条件改变循环条件思考:如果没有思考:如果没有i+,程序如何执行?程序如何执行?循环结构循环结构 10 求求sum=i i=1sum=0sumsum+1sum sum+2sum sum+3 .sum sum+10sum=sum+?1找循环不变式找循环不变式2考虑问号考虑问号 3循环条件循环条件int sum=0,i=1;while(i=10)sum=sum+i;i+;循环结构循环结构 例例1 main()int i=0;while(i=10)printf(“*”);i+;例例2main()int i=1,sum=0;while(i=100)sum=sum+i;i

    4、+;printf(“sum=%d”,sum);循环结构循环结构 例例3 3一个班有学生一个班有学生5050人,统计该班学生语文成绩中高于人,统计该班学生语文成绩中高于8080分的人数分的人数。把统计结果在屏幕上输出。把统计结果在屏幕上输出。int m=1,n=0;float x;while(m=80)n+;/*累加大于累加大于80 分的人数分的人数*/m+;printf(“大于大于80分的学生人数为分的学生人数为%d个个n“,n);分析:成绩要通过键盘输入,设为分析:成绩要通过键盘输入,设为x,x,高于高于8080分的人数为分的人数为n,n,总人数为总人数为m m。从键盘输入从键盘输入5 5个

    5、学生的语文、数学、英语个学生的语文、数学、英语3 3门成绩门成绩,输出输出每个学生的总分与平均成绩。每个学生的总分与平均成绩。循环结构循环结构 从键盘输入从键盘输入5 5个学生的语文、数学、英语个学生的语文、数学、英语3 3门成绩门成绩,输出输出每个学生的总分与平均成绩每个学生的总分与平均成绩。int j=1;float a,b,c,sum,aver;while(j=5)printf(“输入第输入第%d 个学生三门成绩个学生三门成绩n”,j);scanf(“%f%f%f“,&a,&b,&c);sum=a+b+c;aver=sum/3;printf(“第第%d个学生总分个学生总分=%f,平均平均

    6、=%f”,j,sum,aver);j+;循环结构循环结构 1如何确定循环条件?如何确定循环条件?题目中有明确的提示!从键盘输入题目中有明确的提示!从键盘输入5个个学生的学生的2 如何确定循环体?如何确定循环体?重复执行的语句!重复执行的语句!从键盘输入从键盘输入5个学生的语文、数学、英语个学生的语文、数学、英语3门成绩门成绩,输出输出每个学生的总分与平均成绩。每个学生的总分与平均成绩。等价于:等价于:(1)输入)输入1个学生的语文、数学、英语个学生的语文、数学、英语3门成绩;门成绩;(2)计算总分与平均分)计算总分与平均分 (3)输出总分与平均成绩。)输出总分与平均成绩。循环结构循环结构#in

    7、clude main()int n,i=1,sum=1;printf(“please input nn”)scanf(“%d”,&n)while(i=n)sum=sum*i;i+;printf(“sum=%d”,sum);例例4 以下程序从键盘输入以下程序从键盘输入5,结果是多少?结果是多少?循环结构循环结构 注意注意:先执行循环体,再判断循环条件,先执行循环体,再判断循环条件,循环至少执行一次。循环至少执行一次。while()()后的后的分号不能省略。分号不能省略。非非0 while(表达式表达式)循环体循环体0i=1;while(i=10)printf(“%d”,i);i+;dowhile

    8、(i=10);循环结构循环结构 例例1:main()int i=1;do printf(“*”);i+;while(i=10);例例2:main()int i=1,s=0;do s=s+i;i+=2;while(i=100);printf(“s=%d”,s);循环结构循环结构 统计某班级中计算机课程中成绩高于统计某班级中计算机课程中成绩高于95分的学生人数。分的学生人数。假定(假定(10人)人)1 1 算法分析算法分析 将该班每人计算机课程成绩输入计算机,每输入一个成绩,将该班每人计算机课程成绩输入计算机,每输入一个成绩,就与就与95进行比较,如果大于进行比较,如果大于95,计数器加,计数器加

    9、1,直到输完,直到输完10个人成个人成绩为止。最后显示出统计的人数。绩为止。最后显示出统计的人数。2 2 数据结构数据结构 用用fs存放输入的数据,用变量存放输入的数据,用变量j记录输入数据的个数,数据输记录输入数据的个数,数据输完成时完成时j=10,用变用变i统计高于统计高于95分学生的人数。当成绩输完后,分学生的人数。当成绩输完后,输出输出i 累加后的结果。累加后的结果。循环结构循环结构 int i=0,j=1;float fs;while(j95)i+;j+;printf(“95分人为分人为%d“,i);循环结构循环结构 int i=0,j=1;float fs;do printf(“输

    10、入第输入第%d 个数个数”,j)scanf(%f,&fs);if(fs 95)i+;j+;while(j=10);printf(“95分人为分人为%d“,i);循环结构循环结构 while和和do-whilewhile(表达式表达式)循环体循环体do 循环体循环体while(表达式表达式);非非0 while(表达式表达式)循环体循环体0非非0 while(表达式表达式)循环体循环体0先判断先判断后循环后循环先循环先循环后判断后判断循环结构循环结构 一般情况一般情况两者差不多两者差不多-进入循环结构执行若干次后结束循环进入循环结构执行若干次后结束循环;极端情况极端情况(1)死循环死循环(2)无

    11、法进入循环无法进入循环i=100,while(i10)循环结构循环结构 语法:语法:for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3)3)循环体循环体 执行过程执行过程:1 先运算表达式先运算表达式12 再运算表达式再运算表达式2,真真执行循环体执行循环体 3 再运算表达式再运算表达式3,判断循环条件,判断循环条件 表达式表达式1循环体循环体表达式表达式3表达式表达式2TF若表达式若表达式2为假为假不执行循环体不执行循环体循环结构循环结构 while和和for表达式表达式1循环体循环体表达式表达式3表达式表达式2TFfor(表达式表达式1;表达式表达式2;表达式表达式3)

    12、循环体循环体 while(表达式表达式)循环体循环体非非0 while(表达式表达式)循环体循环体0如何用如何用while写写for结构结构?while(?)?表达式;表达式;while(表达式表达式)循环体;循环体;表达式表达式3;结论:结论:for语句书写结构更清晰语句书写结构更清晰循环结构循环结构 1 1循环结构循环结构 for(表达式表达式1;表达式表达式2;表达式表达式3)循循 环环 体体 控制循环是否结束改变循环条件改变循环条件 1、表达式、表达式1可以是逗号表达式,可省略可以是逗号表达式,可省略,但其后的分号不能省;但其后的分号不能省;2、表达式、表达式2也可省略,此时循环为无穷

    13、循环;也可省略,此时循环为无穷循环;3、表达式、表达式3也可省略。也可省略。sum=0;for(i=1;i=10;i+)sum=sum+i;int sum=0,i=1;while(i=10)sum=sum+i;i+;sum=0;for(i=1;i=10;i+)sum=sum+i;i+;结果是什么?循环结构循环结构 统计某班级中计算机课程中考试成绩高于统计某班级中计算机课程中考试成绩高于8080分的人数分的人数(10(10人),用人),用for for 循环循环语句写该程序语句写该程序。int fs,j,i=0;for(j=1;j80)i+;printf(“i=%dn“,i);循环结构循环结构

    14、例例2:说明以下循环语句的循环次数。:说明以下循环语句的循环次数。(1)for(i=0;i=0;i-);答:答:(3)(3)i=1;while(in)+i;答:答:(4)(4)i=4;do i-;while(i0);答:答:(5)(5)m=5;while(mj;i+,j-);答:答:n-1次n+1次n-1次1次0次0次循环结构循环结构 求数列求数列 s=1+2+3.n程序段:程序段:s=0;for(i=1;1=n;i+)s=s+i;算法算法:循环的条件循环的条件:i=n重复做的重复做的:s=s+t;t+(加法运算加法运算)循环的控制循环的控制:i+等价等价t+循环结构循环结构 求数列求数列 s

    15、=1+1/2+1/3.1/n程序段:程序段:s=0;for(i=1;i=n;i+)s=s+1.0/i;算法算法:循环的条件循环的条件:i=n重复做的重复做的:s=s+t (t是什么?是什么?)循环的控制循环的控制:i+t=1.0/is=s+1.0/i循环结构循环结构 int i,n;float s=0;printf(“please input n:“);scanf(“%d”,&n);for(i=1;i=n;i+)s=s+1.0/i;printf(“s=%f”,s);循环结构循环结构 int n,i;float s;printf(“input n:“);scanf(“%d”,&n);for(i=

    16、1;i=n;i+)s=s+1.0/(i*i);printf(“s=%f”,s);循环结构循环结构 3求数列求数列 s=1-1/2+1/3-1/4.1/n程序段:程序段:s=0;m=1for(i=1;i=n;i+)s=s+1.0/i*m;m=-m;循环结构循环结构 练习练习 求数列求数列 s=1-1/3+1/5-1/7+1/91/(2n-1)的和的和 int n,i=1,m=1;float s=0;printf(“input n:“);scanf(“%d”,&n);while(i=1e-10;i+)s=s+1.0/(i*i);printf(%fn,sqrt(s*6);循环结构循环结构 5 5 求

    17、数列 50011n511111611的和。程序 int i;float sum=0;for(i=0;i=1&c=9循环结构循环结构 计算并输出计算并输出n(包括包括n)以内能被以内能被5或或9整除的所有整除的所有自然数的倒数之和。自然数的倒数之和。循环结构循环结构 long int i,n,t=1;printf(“please input n:”);scanf(“%d”,&n);for(i=1;i=n;i+)t=t*i;printf(“n!=%ldn”,t);7 求求 n!循环结构循环结构 long int i,n,t=1,s=0;printf(“please input n:”);scanf

    18、(“%d”,&n);for(i=1;i=n;i+)if(i%2)t=t*i;s=s+t;printf(“s=%ldn”,s);练习练习:s=1!+3!+5!.循环结构循环结构 long int i,n,x,t=1;printf(please input x and n:);scanf(%d%d,&x,&n);for(i=1;i=n;i+)t=t*x;printf(t=%ldn,t);8 求求 xn循环结构循环结构 计算并输出给定整数计算并输出给定整数n的所有因子的所有因子(不包括不包括1与与自身自身)之和。规定之和。规定n的值不大于的值不大于1000。循环结构循环结构 int n=1,s=0;

    19、while(n=10)s=s+n;break;n+;printf(“%d”,s);break使流程跳出使流程跳出本层本层循环体循环体continue跳过本次循环中余尚未执行的语句跳过本次循环中余尚未执行的语句,接着去执行接着去执行下一个循环下一个循环int s=0,n=1;while(n20)n+;continue;s=s+n;printf(“%d”,s);退出循环体退出循环体跳过循环体中未执行的语句跳过循环体中未执行的语句循环结构循环结构 例例1 以下程序输出结果以下程序输出结果 int s=0,n=1;while(n=10)if(n=4)break;s=s+n;n+;printf(“%d”

    20、,s);例例2 以下程序输出结果以下程序输出结果int n=1;while(n3)continue;n+;printf(“%d”,n);6 死循环死循环,无输出无输出!循环结构循环结构 int n=2;while(n10)if(n3)continue;if(n=5)break;n+;printf(“%d”,n);A 10 B 9 C 5 D 死循环死循环 int a=1,b=1;while(a=9)break;if(b%3=1)b+=3;a+;printf(“%d”,a);A2 B3 C4 D5循环结构循环结构 输入输入m,判断判断m是否是素数是否是素数算法:除了和算法:除了和m,不能被其他数

    21、整除不能被其他数整除m%2%3%4%.%(m-1)不是素数不是素数|=0 =0 =0 =0 是素数是素数&!=0 !=0 !=0 !=0 程序:程序:for(i=;im;i+)if(m%i=0)break;if(i=m)printf(“是素数是素数”);elseprintf(“不是素数不是素数”);循环结构循环结构 循环的嵌套循环的嵌套 循环体内再包含循环语句循环体内再包含循环语句 while(表达式表达式)循环体循环体 内循环内循环 for或或 do while 循环体循环体 for(式1;式2;式3)外循环外循环内循环内循环注意注意 外循环条件满足时进入内循环;外循环条件满足时进入内循环;

    22、只有当内循环循环完毕后只有当内循环循环完毕后,才会回到外循环才会回到外循环.while(表达式表达式)循环体循环体 循环结构循环结构 程序 int i;for(i=1;i=10;i+)printf(“*”);输出:输出:*如要输出如下图形如要输出如下图形:循环结构循环结构 *循环结构循环结构 计算并输出计算并输出3到到n(大于大于2)之间所有素数的平方根之和之间所有素数的平方根之和 int n,m,k i;double s=0.0;scanf(“%d”,&n);for(m=3;m=n;m+)for(i=2;i=m;i+)if(m%i=0)break;if(i=m)s+=sqrt(m);prin

    23、tf(“s=%f”,s);循环结构循环结构#includemain()int t=0,n=1,s=0;while(n=7)_1_;s=s+_2_;n+;printf(“s=%dn”,s);t=t*10+3t或或t=1/3*(pow(10,n)-1)计算计算3+33+333+33333333333(7个个3)的和的和,请填空。请填空。循环结构循环结构 习题习题4 计算计算:1+22+333+4444+.前前7项项(p87)int t=0,n=1,s=0;while(n=7)t=n*(pow(10,n)-1)/9);s=s+t;n+;习题习题5 计算计算:1+12+123+1234+.前前7项项循

    24、环结构循环结构 下面程序的功能是完成用一元人民币换成一分下面程序的功能是完成用一元人民币换成一分、两分五分、两分五分的所有兑换方案,请填空的所有兑换方案,请填空。int i1,i2,i5;for(i5=0;i5=20;i5+)for(i2=0;i2=0循环结构循环结构 下面程序是从三个红球、五个白球、六个黑球取出八下面程序是从三个红球、五个白球、六个黑球取出八个球,且中必须有白球,输出所有可能的方案。请填空。个球,且中必须有白球,输出所有可能的方案。请填空。int i,j,k,sum=0;for(i=0;i=3;i+)for(1;j=0&k=6循环结构循环结构 int n,a,b,c;for(

    25、n=100;n=999;n+)a=n/100;b=n/10%10;c=n%10;if(a*a*a+b*b*b+c*c*c=n)printf(“%d”,n);6请找出这样一些三位数整数,其本身恰好等于其各位请找出这样一些三位数整数,其本身恰好等于其各位数的立方和,如数的立方和,如153=13+53+33循环结构循环结构 下面程序是求下面程序是求10001000以内的完全数以内的完全数(一个数如果恰好一个数如果恰好等于它的因子之和,则称该数为完全数等于它的因子之和,则称该数为完全数,如如:6=1+2+3,:6=1+2+3,再如再如:28=1+2+4+7+14:28=1+2+4+7+14)。)。in

    26、t a,i,m;for(a=1;a=1000;a+)for(1;i=a/2;i+)if(a%i=0)2;if(m=a)printf(“%dn”,a);m=0,i=1m=m+i循环结构循环结构 搜索搜索(穷举求解穷举求解)中国剩余定理:中国剩余定理:“有物不知几何,三三数余一,五五有物不知几何,三三数余一,五五数余二,七七数余三,问:物有几何?数余二,七七数余三,问:物有几何?”。编程求。编程求1000以内所有解。以内所有解。int m,count=0;for(m=1;m=1000;m+)if(m%3=1&m%5=2&m%7=3)printf(“%5d”,m);count+;if(count%5

    27、=0)printf(“n”);循环结构循环结构 例例3:“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁母雏各几何?值钱一,百钱买百鸡,问翁母雏各几何?”(引自张引自张邱建算经,公元五世纪邱建算经,公元五世纪)分析:设分析:设x,y,z分别表示鸡翁,鸡母,鸡雏的数目,则分别表示鸡翁,鸡母,鸡雏的数目,则有有 x:020 y:033 z:0300 x+y+z=1005x+3y+z/3=100上述方程属于不定方程,解并不唯一,因此,上述方程属于不定方程,解并不唯一,因此,只能用搜索法对只能用搜索法对x,y,z的所有组合情况,测试满足的所有组

    28、合情况,测试满足条件的解。条件的解。循环结构循环结构 int x,y,z;printf(“Cock Hen chickenn”);for(x=0;x=20;x+)for(y=0;y=0&x+y+z=100)printf(“%8d%8d%8dn”,x,y,z);循环结构循环结构 搜索求解练习搜索求解练习有有30个男女小孩同在一家小饭馆进餐,共花个男女小孩同在一家小饭馆进餐,共花了了50先令,其中每位男宾先令,其中每位男宾3先令,每位女宾先令,每位女宾2先令,先令,每位小孩每位小孩1先令,问男女小孩各多少?(马先令,问男女小孩各多少?(马克思数学手稿)克思数学手稿)循环结构循环结构 int i,j,k;for(i=0;i=16;i+)for(j=0;j=0&i+j+k=30)printf(%5d%5d%5d,i,j,k);循环结构循环结构#include main()int i,j,k;for(i=1;i=28;i+)for(j=1;j=28;j+)for(k=1;k=28;k+)if(3*i+2*j+k=50&i+k+j=30)printf(%5d%5d%5dn,i,j,k);

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言程序设计基础课件第5讲循环结构.ppt
    链接地址:https://www.163wenku.com/p-4145106.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库