欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    循环结构程序设计(第一次课).ppt

    • 资源ID:79045288       资源大小:235.50KB        全文页数:41页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    循环结构程序设计(第一次课).ppt

    第五章第五章5.15.1 程序中需要用循环结构程序中需要用循环结构5.25.2 用用whilewhile语句和语句和do-whiledo-while语句实现循环语句实现循环5.35.3 用用for for 语句实现循环语句实现循环 5.45.4 循环的嵌套循环的嵌套5.55.5 用用breakbreak语句和语句和continuecontinue语句改变循环状态语句改变循环状态5.65.6 几种循环的比较几种循环的比较5.75.7 程序举例程序举例主要内容 5.1 5.1 程序中需要用循环结构程序中需要用循环结构什么是循环?为什么要使用循环?问题1:问题2:求学生平均成绩求学生平均成绩 分数相加后除以学生数在许多问题中需要用到循环控制。循环结构就是用来处理需要重复处理的问题的,所以又称重复结构。它和顺序结构、选择结构共同作为各种复杂程序的基本构造单元。循环分为两种:无休止循环和有终止循环构成有效循环的条件:循环体和循环结束条件5.2 用用whilewhile语句和语句和do-whiledo-while语句实现循环语句实现循环 用用用用whilewhilewhilewhile语句实现循环语句实现循环语句实现循环语句实现循环 while while语句用来实现语句用来实现“当型当型”循环结循环结构构 一般形式:一般形式:一般形式:一般形式:while(while(表达式表达式)语句语句 当表达式为非当表达式为非0 0值时,执行值时,执行whilewhile语句中的内嵌语句。其特点是语句中的内嵌语句。其特点是:先先判断表达式,后执行循环体。判断表达式,后执行循环体。例题例题 5.1求求1+2+3+1001+2+3+100的和的和解题思路解题思路(1)开始时使sum的值为0,被加数i第一次取值为1。开始进入循环结构。(2)判别“i100”条件是否满足,由于i小于100,因此“i100”的值为真。所以应当执行其下面矩形框中的操作。(3)执行sum=sum+i,此时sum的值变为1了,然后使i的值加1,i的值变为2了,这是为下一次加2作准备。流程返回菱形框。(4)再次检查“i100”条件是否满足,由于i的值为2,小于100,因此“i100”的值仍为真,所以应执行其下面矩形框中的操作。(5)执行sum=sum+i,由于sum的值已变为1,i的值已变为2,因此执行sum=sum+i后sum的值变为3。再使i的值加1,i的值变为3。流程再返回菱形框。(6)再次检查“i100”条件是否满足,如此反复执行矩形框中的操作,直到i的值变成了100,把i加到sum中,然后i又加1变成101了。当再次返回菱形框检查“i100”条件时,由于I已是101,大于100,“i100”的值为假,不再执行矩形框中的操作,循环结构结束。5.2.1 5.2.1 用用whilewhile语句实现循环语句实现循环#include void main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);说明:说明:说明:说明:(1)循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句形式出现.(2)在循环体中应有使循环趋向于结束的语句。运行结果:运行结果:5050 用用用用whilewhilewhilewhile语句实现循环语句实现循环语句实现循环语句实现循环 用用do-whiledo-while语句实现循环语句实现循环 do-whiledo-while语句的特点语句的特点:先执行循环体,然后判先执行循环体,然后判断循环条件是否成立。断循环条件是否成立。执行过程:先执行一次指定的循环体语句,然后判别执行过程:先执行一次指定的循环体语句,然后判别“表达式表达式”,当表达式的值为非,当表达式的值为非0(“0(“真真”)”)时,返时,返回重新执行循环体语句,如此反复,直到表达式的回重新执行循环体语句,如此反复,直到表达式的值等于值等于0(“0(“假假”)”)为止,此时循环结束。为止,此时循环结束。whilewhile语句和语句和do-whiledo-while语句的关系:同一个问题既可语句的关系:同一个问题既可以用以用whilewhile循环处理,也可以用循环处理,也可以用do-whiledo-while循环来处理。循环来处理。二者是可以互相转换的。二者是可以互相转换的。一般形式一般形式:do do 循环体语句循环体语句 while(while(表达式表达式);用用do-whiledo-while语句实现循环语句实现循环一般形式一般形式:do do 循环体语句循环体语句 while(while(表达式表达式);#include void main()int i,sum=0;i=1;while(i=100)sum=sum+i;i+;printf(%dn,sum);用用用用whilewhilewhilewhile语句实现语句实现语句实现语句实现 例题例题 5.2 求求1+2+3+100的和。的和。#include void main()int i,sum=0;i=1;do sum=sum+i;i+;while(i=100);printf(%dn,sum);运行结果:运行结果:5050说明:说明:说明:说明:可以看到,结果和例可以看到,结果和例5.15.1完全相同。完全相同。用用用用do-whiledo-whiledo-whiledo-while语句实现循环语句实现循环语句实现循环语句实现循环补充例题:补充例题:求求1+3+5+991+3+5+99的和。的和。#include void main()int i,sum=0;i=1;do sum=sum+i;i=i+2;while(i=100);printf(%dn,sum);思考题:思考题:求求2+6+8+1002+6+8+100的和。的和。讨论题:讨论题:编写程序求编写程序求100100以内以内5 5的倍数的和。的倍数的和。例题例题 5.11 程序程序2#include void main()int sum=0,i;scanf(“%d”,&i)do sum=sum+i;i+;while(i=10);printf(sum=%dn,sum);while while while while和和和和do-whiledo-whiledo-whiledo-while循环的比较循环的比较循环的比较循环的比较 例题例题 5.11 程序程序1#include void main()int sum=0,i;scanf(“%d”,&i)while(i=10);sum=sum+i;i+;printf(sum=%dn,sum);运行结果:运行结果:1 sum=55 再运行一次:再运行一次:11 sum=0运行结果:运行结果:1 sum=55 再运行一次:再运行一次:11 sum=11说明:说明:说明:说明:当当whilewhile后面的表达式的第一次的值为后面的表达式的第一次的值为“真真”时,两种循环得到的结果相同。否则,二者结果不时,两种循环得到的结果相同。否则,二者结果不相同。相同。while while while while和和和和do-whiledo-whiledo-whiledo-while循环的比较循环的比较循环的比较循环的比较例题例题 5.3 募集慈善基金10000元,有若干人捐款,每输入一个人的捐款数后,计算机就输出当时的捐款总和。当某一次输入捐款数后,总和达到或超过10000元时,即宣告结束,输出最后的累加值。解题思路解题思路解此题的思路是设计一个循环结构,在其中输入捐款数,求出累加值,然后检查此时的累加值是否达到或超过预定值,如果达到了,就结束循环操作。5.2 用用whilewhile语句和语句和do-whiledo-while语句实现循环语句实现循环#include void main()float amount,sum=0;do scanf(%f,&amount);sum=sum+amount;while(sum10000);printf(sum=%9.2fn,sum);运行结果:运行结果:1000 (输入捐款额输入捐款额)1850 1500 2600 2500 1200 sun=10650.00说明:说明:说明:说明:设计循环结构,要考虑两个问题:一是循环体,二是循环结束条件。注意while循环中判断的条件是循环继续的条件,而不是结束条件。5.2 5.2 用用用用whilewhilewhilewhile语句和语句和语句和语句和do-whiledo-whiledo-whiledo-while语句实现循环语句实现循环语句实现循环语句实现循环 5.3 用用for语句实现循环语句实现循环 5.3.1 for语句的一般形式和执行过程语句的一般形式和执行过程 C C语言中的语言中的forfor语句使用最为灵活,不仅语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条以用于循环次数不确定而只给出循环结束条件的情况。件的情况。一般形式一般形式:for(for(表达式表达式1 1;表达式;表达式2 2;表达式;表达式3)3)语句语句5.3.1 for5.3.1 for语句的一般形式和执行过程语句的一般形式和执行过程语句的一般形式和执行过程语句的一般形式和执行过程for语句的执行过程:语句的执行过程:(1)(1)先求解表达式先求解表达式1 1。(2)(2)求解表达式求解表达式2 2,若其值为真,若其值为真(值为非值为非0)0),则执,则执 行行forfor语句中指定的内嵌语句,然后执行下语句中指定的内嵌语句,然后执行下 面第面第(3)(3)步。若为假步。若为假(值为值为0)0),则结束循环,则结束循环,转到第转到第(5)(5)步。步。(3)(3)求解表达式求解表达式3 3。(4)(4)转回上面第转回上面第(2)(2)步骤继续执行。步骤继续执行。(5)(5)循环结束,执行循环结束,执行forfor语句下面的一个语句。语句下面的一个语句。#include void main()int i,sum=0;for(i=1;i=100;i+)sum=sum+i;printf(%dn,sum);用用用用FORFORFORFOR语句实现语句实现语句实现语句实现 S=1+2+3+4+100 S=1+2+3+4+100 S=1+2+3+4+100 S=1+2+3+4+100 相当于:相当于:i=1;while(i=100)sum=sum+i;i+;for for for for循环程序举例循环程序举例循环程序举例循环程序举例 国王的小麦。相传古代印度国王舍罕要褒赏他的聪明能干的宰相达依尔(国际象棋的发明者),国王问他要什么?达依尔回答说:“国王只要在国际象棋的棋盘第1个格子中放1粒麦子,第2个格子中放2粒麦子,第3个格子中放4粒麦子,以后按此比例每一格加一倍,一直放到第64格(国际象棋的棋盘8*8=64格),我感恩不尽,其他什么都不要了。”国王想,这有多少!还不容易!让人扛来一袋小麦,但不到一会儿全用没了,再来一袋很快又用完了。结果全印度的粮食全部用完还不够。国王纳闷,怎样也算不清这笔账。现在我们用计算机来算一下。例题例题 5.4解题思路解题思路麦子的总粒数是:麦子的总粒数是:分别计算出每一格的麦子粒数,把它们加起来,就分别计算出每一格的麦子粒数,把它们加起来,就得到总粒数。据估算,得到总粒数。据估算,1 1 小麦约有小麦约有1.42 1.42 粒,可以粒,可以计算出小麦的体积。计算出小麦的体积。可以用可以用forfor语句实现循环。语句实现循环。for for循环程序举例循环程序举例#include#include void main()void main()double p=1,t=1,v;double p=1,t=1,v;int i;int i;for(i=1;i64;i+)for(i=1;i64;i+)p=p*2;p=p*2;t=t+p;t=t+p;v=t/1.42e8;v=t/1.42e8;printf(“printf(“麦子总粒数麦子总粒数麦子总粒数麦子总粒数=%en”,t);=%en”,t);printf(“printf(“麦子总体积麦子总体积麦子总体积麦子总体积=%en,v);=%en,v);运行结果:运行结果:麦子总粒数麦子总粒数=1.844674e+019麦子总体积麦子总体积=1.299066e+011 for for循环程序举例循环程序举例1 1立方米小麦约有立方米小麦约有1.42*101.42*108 8 for for循环程序举例循环程序举例例题例题5.4说明:说明:变量变量i用来控制循环的次数,开始时用来控制循环的次数,开始时i=1,在完成第,在完成第1次循环后,次循环后,i的值加的值加1变变为为2,由于,由于264,所以执行第,所以执行第2次循环,次循环,依此类推,当依此类推,当i变到变到63时,执行最后一次时,执行最后一次循环,循环,i再变为再变为64,由于,由于i不再小于不再小于64了,了,不再执行循环。接着计算体积,输出结不再执行循环。接着计算体积,输出结果。果。for for for for循环程序举例循环程序举例循环程序举例循环程序举例 人口增长预测。据人口增长预测。据20052005年末统计,我国人口为年末统计,我国人口为130756130756万人,如果人口的年增长率为万人,如果人口的年增长率为1%1%,请计算到,请计算到哪一年中国总人口超过哪一年中国总人口超过1515亿。亿。例题例题 5.5解题思路解题思路 计计算算人人口口增增长长和和计计算算存存款款利利息息的的公公式式是是相相同同的的。假设原来人口为假设原来人口为p p0 0 ,则一年后的人口:,则一年后的人口:其中其中r r是年增长率。用此公式依次计算出每年的人是年增长率。用此公式依次计算出每年的人口,每算出一年的人口后就检查一下是否达到或超口,每算出一年的人口后就检查一下是否达到或超过过1515亿?如果未达到或超过亿?如果未达到或超过1515亿,就再计算下一年亿,就再计算下一年的人口,直到某一年的人口达到或超过的人口,直到某一年的人口达到或超过1515亿为止。亿为止。5.3.2 for5.3.2 for循环程序举例循环程序举例#include void main()double p=1.30756e9,r=0.01;int y;for(y=2006;p1.5e9;y+)p=p*(1+r);printf(“年份年份=%d,人口总数人口总数=%en,y-1,p);运行结果:运行结果:年份年份=2019,人口总数人口总数=1.503007e+009由于在结束循环前由于在结束循环前y y又加了又加了1 1,因此在输出年份时应输出,因此在输出年份时应输出y-1y-1的值。的值。5.3.2 for5.3.2 for循环程序举例循环程序举例例题例题5.5说明:说明:注意区分变量注意区分变量注意区分变量注意区分变量p p在不同阶段中的不同含义。在不同阶段中的不同含义。在不同阶段中的不同含义。在不同阶段中的不同含义。y y代表年份。循环体中只有一个语句,用来计算代表年份。循环体中只有一个语句,用来计算代表年份。循环体中只有一个语句,用来计算代表年份。循环体中只有一个语句,用来计算从从从从20062006年开始的各年的人口数。在年开始的各年的人口数。在年开始的各年的人口数。在年开始的各年的人口数。在forfor语句中设定的语句中设定的语句中设定的语句中设定的循环条件是循环条件是循环条件是循环条件是p15p15亿,当某一年的亿,当某一年的亿,当某一年的亿,当某一年的p p达到或超过达到或超过达到或超过达到或超过1515亿,亿,亿,亿,就停止循环,输出年份和当年的人口数。由于在最就停止循环,输出年份和当年的人口数。由于在最就停止循环,输出年份和当年的人口数。由于在最就停止循环,输出年份和当年的人口数。由于在最后结束循环前后结束循环前后结束循环前后结束循环前y y又加了又加了又加了又加了1 1,因此在输出年份时应输出,因此在输出年份时应输出,因此在输出年份时应输出,因此在输出年份时应输出y-1y-1的值而不是的值而不是的值而不是的值而不是y y的值。的值。的值。的值。5.3.2 for5.3.2 for5.3.2 for5.3.2 for循环程序举例循环程序举例循环程序举例循环程序举例总结:总结:一个变量开始时有一初值,通过一定的运算,一个变量开始时有一初值,通过一定的运算,一个变量开始时有一初值,通过一定的运算,一个变量开始时有一初值,通过一定的运算,可以推算出一个新的值,再从这个新值又推出下一可以推算出一个新的值,再从这个新值又推出下一可以推算出一个新的值,再从这个新值又推出下一可以推算出一个新的值,再从这个新值又推出下一个新值,即不断用计算出的新值去取代原有的值,个新值,即不断用计算出的新值去取代原有的值,个新值,即不断用计算出的新值去取代原有的值,个新值,即不断用计算出的新值去取代原有的值,这种方法称为迭代。上面的计算公式这种方法称为迭代。上面的计算公式这种方法称为迭代。上面的计算公式这种方法称为迭代。上面的计算公式p*(1+r)p*(1+r)称为迭称为迭称为迭称为迭代公式。迭代算法一般是用循环来实现的。迭代是代公式。迭代算法一般是用循环来实现的。迭代是代公式。迭代算法一般是用循环来实现的。迭代是代公式。迭代算法一般是用循环来实现的。迭代是一种常用的算法,用人工实现很麻烦,而用计算机一种常用的算法,用人工实现很麻烦,而用计算机一种常用的算法,用人工实现很麻烦,而用计算机一种常用的算法,用人工实现很麻烦,而用计算机实现却十分方便。实现却十分方便。实现却十分方便。实现却十分方便。5.55.5 提前结束循环提前结束循环提前结束循环提前结束循环 用用用用breakbreakbreakbreak语句提前退出循环语句提前退出循环语句提前退出循环语句提前退出循环 breakbreak语句可以用来从循环体内跳出循环语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下体,即提前结束循环,接着执行循环下面的语句。面的语句。一般形式:一般形式:break;break;说明说明:breakbreak语句不能用于循环语句和语句不能用于循环语句和switchswitch语语句之外的任何其他语句中。句之外的任何其他语句中。统计各班级的学生的平均成绩。已知各班人数统计各班级的学生的平均成绩。已知各班人数不等,但都不超过不等,但都不超过3030人。编一个程序能处理人数不人。编一个程序能处理人数不等的各班学生的平均成绩。等的各班学生的平均成绩。例题例题 5.6解题思路解题思路 如果各班人数相同,问题比较简单,只需用一如果各班人数相同,问题比较简单,只需用一个个forfor语句控制即可:语句控制即可:for(i=1;i31;i+)for(i=1;i31;i+)但是现在有的班不足但是现在有的班不足3030人,应当设法告诉计算人,应当设法告诉计算机本班的人数,使程序也能统计出该班的平均成绩机本班的人数,使程序也能统计出该班的平均成绩。可以约定,当输入的成绩是负数时,就表示本班。可以约定,当输入的成绩是负数时,就表示本班数据已结束数据已结束(一般情况下成绩不会是负数一般情况下成绩不会是负数)。在程序。在程序接收到一个负的分数时就提前结束循环,计算出本接收到一个负的分数时就提前结束循环,计算出本班平均成绩。班平均成绩。break break语句可以用来实现提前结束循环。语句可以用来实现提前结束循环。用用用用breakbreakbreakbreak语句提前退出循环语句提前退出循环语句提前退出循环语句提前退出循环 用用breakbreak语句提前退出循环语句提前退出循环#include#include void main()void main()float score,sum=0,average;float score,sum=0,average;int i,n;int i,n;for(i=1;i31;i+)for(i=1;i31;i+)scanf(%f,&score)scanf(%f,&score)if(score0)break;if(score0)break;sum=sum+score;sum=sum+score;n=i-1;n=i-1;average=sum/n;average=sum/n;printf(n=%d,average=%7.2fn,n,average);printf(n=%d,average=%7.2fn,n,average);运行结果:运行结果:100 (输入一个学生成绩输入一个学生成绩)80 70-1 (输入负数,表示本班数据结束输入负数,表示本班数据结束)n=3,average=83.33 用用breakbreak语句提前退出循环语句提前退出循环说明:说明:如果一个班有如果一个班有3030人,则输入完人,则输入完3030人的成绩后累计总分后自动结人的成绩后累计总分后自动结束循环,不必再输入负数作为结束标志。在结束循环后束循环,不必再输入负数作为结束标志。在结束循环后i i的值等于的值等于31(31(因为执行完因为执行完3030次循环后,次循环后,i i再加再加1 1,变成,变成3131,此时才终止循环,此时才终止循环),因此学生数因此学生数n n应该等于应该等于i-1i-1。如果一个班人数少于如果一个班人数少于3030人,则在输入完全班学生的成绩后,输人,则在输入完全班学生的成绩后,输入一个负数,此时程序就跳过循环体其余的语句,也不再继续执行入一个负数,此时程序就跳过循环体其余的语句,也不再继续执行其余的几次循环。直接跳到循环下面的语句其余的几次循环。直接跳到循环下面的语句(n=i-1;)(n=i-1;)继续执行。刚继续执行。刚输入的数不进行累加输入的数不进行累加(不执行不执行sum=sum+score;)sum=sum+score;)。注意此时。注意此时i i的值,的值,假如已输入了假如已输入了2525个有效分数,在第个有效分数,在第2626次循环时输入一个负数,此时次循环时输入一个负数,此时i i的值是的值是2626,而学生数,而学生数n n应是应是i-1i-1。5.55.5 提前结束循环提前结束循环提前结束循环提前结束循环 用用用用continuecontinuecontinuecontinue语句提前结束本次循环语句提前结束本次循环语句提前结束本次循环语句提前结束本次循环continuecontinue语句作用为结束本次循环,即跳语句作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定行下一次是否执行循环的判定.一般形式:一般形式:continue;continue;continuecontinue语句和语句和breakbreak语句的区别:语句的区别:continuecontinue语句语句只结束本次循环,而不是只结束本次循环,而不是终止整个循环的执行。终止整个循环的执行。breakbreak语句语句则是结束整个循环过程,不则是结束整个循环过程,不再判断执行循环的条件是否成立。再判断执行循环的条件是否成立。while(表达式1)if(表达式2)continue;while(表达式1)if(表达式2)break;continue语句语句break语句语句 输入一个班全体学生的成绩,把不及格的学生输入一个班全体学生的成绩,把不及格的学生成绩输出,并求及格学生的平均成绩。成绩输出,并求及格学生的平均成绩。例题例题 5.7解题思路解题思路 在进行循环中,检查学生的成绩,把其中不及在进行循环中,检查学生的成绩,把其中不及格的成绩输出,然后跳过后面总成绩的累加和求平格的成绩输出,然后跳过后面总成绩的累加和求平均成绩的语句。用均成绩的语句。用continuecontinue语句即可处理此问题。语句即可处理此问题。5.5 5.5 提前结束循环提前结束循环提前结束循环提前结束循环#include#include void main()void main()float score,sum=0,average;float score,sum=0,average;int i,n=0;int i,n=0;for(i=1;i6;i+)/*for(i=1;i6;i+)/*假设有假设有假设有假设有5 5个学生个学生个学生个学生*/*/printf(“printf(“请输入一个成绩请输入一个成绩请输入一个成绩请输入一个成绩:”);:”);scanf(“%f”,&score);scanf(“%f”,&score);if(score60)if(score60)printf(“printf(“不及格成绩不及格成绩不及格成绩不及格成绩:%7.2fn”,score);:%7.2fn”,score);continue;continue;sum=sum+score;sum=sum+score;n=n+1;n=n+1;average=sum/n;average=sum/n;printf(“n printf(“n及格人数及格人数及格人数及格人数=%d,=%d,平均分平均分平均分平均分=%7.2fn,n,average)=%7.2fn,n,average)运行结果:运行结果:请输入一个成绩请输入一个成绩:89 请输入一个成绩请输入一个成绩:56 不及格成绩不及格成绩:56请输入一个成绩请输入一个成绩:76 请输入一个成绩请输入一个成绩:58 不及格成绩不及格成绩:58请输入一个成绩请输入一个成绩:98 及格人数及格人数=3 平均分平均分=87.675.5 5.5 提前结束循环提前结束循环提前结束循环提前结束循环说明:说明:为减少输入量,本程序只按为减少输入量,本程序只按为减少输入量,本程序只按为减少输入量,本程序只按5 5个学生处理。在个学生处理。在个学生处理。在个学生处理。在输入不及格学生成绩后,输出该成绩,然后跳过循输入不及格学生成绩后,输出该成绩,然后跳过循输入不及格学生成绩后,输出该成绩,然后跳过循输入不及格学生成绩后,输出该成绩,然后跳过循环体中未执行的语句,即不参加累计总分环体中未执行的语句,即不参加累计总分环体中未执行的语句,即不参加累计总分环体中未执行的语句,即不参加累计总分sumsum,也,也,也,也不累计合格学生数不累计合格学生数不累计合格学生数不累计合格学生数n n。但是,继续执行后面的几次。但是,继续执行后面的几次。但是,继续执行后面的几次。但是,继续执行后面的几次循环。循环。循环。循环。5.55.5 提前结束循环提前结束循环提前结束循环提前结束循环给一个整数给一个整数m m,判断它是否素数。,判断它是否素数。例题例题 5.9解题思路解题思路程序举例程序举例程序举例程序举例 让让m m被被i(ii(i由由2 2变到变到k=)k=)除,如果除,如果m m能被某一个能被某一个i(2i(2k k之间的任何一个整数之间的任何一个整数)整除,则整除,则m m必然不是素必然不是素数,不必再进行下去。此时的数,不必再进行下去。此时的i i必然小于或等于必然小于或等于k k;如果如果m m不能被不能被2 2k k之间的任一整数整除,则之间的任一整数整除,则m m应是素应是素数,此时在完成最后一次循环后,使数,此时在完成最后一次循环后,使i i再加再加1 1,因此,因此i i的值就等于的值就等于k+1k+1,这时才终止循环。在循环结束之,这时才终止循环。在循环结束之后判别后判别i i的值是否大于或等于的值是否大于或等于k+1k+1,若是,则表明未,若是,则表明未曾被曾被2-k2-k之间任一整数整除过,因此输出之间任一整数整除过,因此输出“是素数是素数”。#include#includevoid main()void main()int m,i,k;int m,i,k;printf(printf(请输入一个整数:请输入一个整数:请输入一个整数:请输入一个整数:););scanf(%d,&m);scanf(%d,&m);k=m-1;k=m-1;for(i=2;i=k;i+)for(i=2;ik)if(ik)printf(%dprintf(%d是一个素数。是一个素数。是一个素数。是一个素数。n,m);n,m);elseelseprintf(%dprintf(%d不是一个素数。不是一个素数。不是一个素数。不是一个素数。n,m);n,m);例题例题例题例题5.95.95.95.9 例题例题例题例题5.95.95.95.9#include#include void main()int m,i,k;printf(“请输入一个整数请输入一个整数:”);scanf(“%d”,&m);k=(int)sqrt(m);for(i=2;ik)printf(“%d是一个素数。是一个素数。n”,m);else printf(“%d不是一个素数。不是一个素数。n,m);修改后修改后修改后修改后例题例题例题例题5.95.95.95.9 运行结果:运行结果:请输入一个整数:请输入一个整数:17 17 是一个素数。是一个素数。

    注意事项

    本文(循环结构程序设计(第一次课).ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开