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

    C语言程序设计 第4章循环结构.pptx

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

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

    C语言程序设计 第4章循环结构.pptx

    第4章循环结构,C语言程序设计,循环结构是在一定条件下反复执行某段程序的流程结构。在C语言中,有三种类型的循环语句:while语句、dowhile语句和for语句。,4.1while语句,1.while语句(1)while语句的一般形式如下:while(表达式)循环语句;注意:while后的表达式通常为关系表达式或逻辑表达式,当表达式的值为0时,表示条件为假;非0时,表示条件为真。循环体若是复合语句,需用“”括起来。如果第一次计算时表达式的值就为0,则循环语句一次也不被执行,流程直接跳过while语句,执行下一条语句。,4.1while语句,在循环体中应有使循环趋向于结束的语句。(2)执行过程:计算while后表达式的值,当值为非0时,执行循环体中的语句并重新计算表达式的值;当值为0时,退出while循环。(如图4-1-1所示),4.1while语句,注意:进入while循环后,一定要有能使此表达式的值变为0的操作,或者有能在某种情况下强行终止循环的语句(如break语句);否则,循环将会无休止地进行下去,即进入死循环。在程序设计中,是不允许死循环出现的。while语句的表达式可以是任何类型,只要表达式的值为真就可继续循环。例如:intx=0,n=2;while(n-)printf(%dn,x+*2);上述语段将执行2次循环,每执行一次,n值减1,循环体输出表达式x+*2的值。,4.1while语句,应该注意条件的选择以避免死循环。例如:inta=5,n=0;while(a=5)printf(%dn,n+);上例中,while语句的循环条件为赋值表达式a=5,因此该表达式的值永远为真,而循环体中又没有其他的终止循环的语句而形成死循环。如果while(表达式)后加了分号“;”,则循环体为空。,4.1while语句,2.while语句实例【例4.1.1】用while语句计算1+2+3+100。算法:步骤一:先赋变量sum初始值为0,i初始值为1。步骤二:当i小于等于100时,重复执行步骤三和四,否则执行步骤五。步骤三:sum+i后赋给sum。步骤四:i+1后赋给i,转回步骤二继续执行。步骤五:输出sum的值。流程图如图4-1-2所示。,4.1while语句,4.1while语句,程序运行结果:sum=5050,4.1while语句,【分析】变量sum的初始值为0,i的初始值为1,计算while后表达式的值1<=100为真,执行循环体中的语句sum+=i相当于sum=sum+i,i+相当于i=i+1后,此时sum的值为1,i的值为2,并重新计算while(i<=100)表达式的值,若为真继续执行循环体,为假则退出循环体,从而继续执行输出sum的值。在循环体中若没有改变循环变量的值,导致循环条件永远为真,程序会出现死循环。,4.1while语句,【例4.1.2】求s=1+12+13+14+15+110。算法:步骤一:先赋变量s初始值为0,i初始值为1。步骤二:当i小于等于10时,重复执行步骤三和四,否则执行步骤五。步骤三:s+1/i后赋给s。步骤四:i+1后赋给i,转回步骤二继续执行。步骤五:输出s的值。流程图如图4-1-3所示。,4.1while语句,4.1while语句,程序运行结果:s=2.928968,4.1while语句,【分析】变量s的初始值为0,i的初始值为1,计算while后表达式的值i<=10为真,执行循环体中的语句s=s+(float)1/i,i+相当于i=i+1后,此时s的值为1.0,i的值为2,并重新计算while(i<=10)表达式的值,若为真继续执行循环体,为假则退出循环体,从而继续执行输出s的值。在C语言中,构造s的表达式时,由于i为整型,则表达式1/i的值为整型,当i的值为2时,则表达式1/i的值为0,故采用(float)1/i,强制转换为float型后再进行计算,当i的值为2时,则表达式(float)1/i的值为0.5。将语句“s=s+(float)1/i;”改为“s=s+1.0/i;”也可。,4.1while语句,【例4.1.3】求s=1+3+5+7+9+,其和大于等于500的最大项。算法:步骤一:先赋变量s初始值为0,i初始值为1。步骤二:当s小于等于500时,重复执行步骤三和四,否则执行步骤五。步骤三:s+i后赋给s。步骤四:i+2后赋给i,转回步骤二继续执行。步骤五:输出i-2的值。流程图如图4-1-4所示。,4.1while语句,4.1while语句,程序运行结果:i=45,4.1while语句,【分析】变量s的初始值为0,i的初始值为1,计算while后表达式的值0<=500为真,执行循环体中的语句s=s+i,i=i+2,此时s的值为1,i的值为3,并重新计算while(s<=500)表达式的值,若为真继续执行循环体,为假则退出循环体,从而继续执行输出i-2的值。本题是利用求和变量s作为循环条件,由于求和项i在退出循环体时多加了一次,故应输出i-2,而不是i的值。,4.2dowhile语句,1.dowhile语句(1)dowhile的一般形式如下:do循环语句;while(表达式);注意:do是C语言的关键字,必须与while配对使用。while(表达式)后的分号“;”不可少,它是dowhile语句的结束标志。while后括号中的表达式可以是任意合法的表达式,由它来控制循环是否执行。,dowhile之间的循环体可以是一条可执行语句,也可以是由“”构成的复合语句。(2)执行过程:先执行循环体,然后判断表达式的值,若表达式的值为非0,再返回重新执行循环语句,如此重复;若表达式的值为0,则退出循环语句,执行下一条语句。(如图4-2-1所示),4.2dowhile语句,注意:dowhile语句先执行循环语句,后判断表达式的值,因此,dowhile语句的循环语句至少被执行一次。dowhile语句可以组成多重循环,也可以和while语句相互嵌套。如果dowhile语句的循环体由多个语句组成时,必须加“”组成一个复合语句。dowhile和while语句可以相互替换,但要注意修改循环控制条件。要把dowhile的条件设为假。循环体中一定要有相应的语句改变表达式的值或有强行终止循环的语句(如break语句),否则将成为死循环。,4.2dowhile语句,4.2dowhile语句,2.dowhile语句实例【例4.2.1】用dowhile语句计算1+2+3+100。算法:步骤一:先赋变量sum初始值为0,i初始值为1。步骤二:sum+i后赋给sum。步骤三:i+1后赋给i。步骤四:当i小于等于100时,重复执行步骤二和三。步骤五:输出sum的值。流程图如图4-2-2所示。,4.2dowhile语句,4.2dowhile语句,程序运行结果:sum=5050,【分析】变量sum的初始值为0,i的初始值为1,先执行循环体中的语句sum+=i相当于sum=sum+i,i+相当于i=i+1后,此时sum的值为1,i的值为2,计算while后表达式的值1<=100为真,继续执行循环体,然后重新计算while(i<=100)表达式的值,若为真继续执行循环体,为假则退出循环体,从而继续执行输出sum的值。在循环体中若没有改变循环变量的值,导致循环条件永远为真,程序会出现死循环。,4.2dowhile语句,4.2dowhile语句,【例4.2.2】用dowhile语句计算算法:步骤一:先赋变量s初始值为0,i初始值为1。步骤二:s+1/i后赋给s。步骤三:i+2后赋给i。步骤四:当i小于等于20时,重复执行步骤二和三。步骤五:输出s的值。流程图如图4-2-3所示。,4.2dowhile语句,4.2dowhile语句,程序运行结果:s=2.133256,【分析】变量s的初始值为0,i的初始值为1,先执行循环体中的语句s=s+1.0/i,然后执行i=i+2后,此时s的值为1.0,i的值为3,计算while后表达式的值3<=20为真,继续执行循环体,然后重新计算while(i<=20)表达式的值,若为真继续执行循环体,为假则退出循环体,从而继续执行输出s的值。语句s=s+1.0/i也可写成s=s+(float)1/i,但如果语句s=s+1.0/i写成s=s+1/i,则会导致运行结果出错。对于while(i<=20)写成while(i<20)或写成while(i<=19)均可,不影响运行结果。,4.2dowhile语句,【例4.2.3】用dowhile语句计算100以内能被3整除且个位不为7的数的和。算法:步骤一:先赋变量s初始值为0,i初始值为1。步骤二:如果i%3=0且i%10!=7,则s+i后赋给s。步骤三:i+1后赋给i。步骤四:当i小于等于100时,重复执行步骤二和三。步骤五:输出s的值。流程图如图4-2-4所示。,4.2dowhile语句,4.2dowhile语句,4.2dowhile语句,程序运行结果:s=1512,【分析】变量s的初始值为0,i的初始值为1,先执行循环体中的if语句,此时条件(i%3=0表达式2;表达式3)循环语句;但注意省略表达式1时,其后的分号不能省略。此时,应在for语句之前给循环变量赋初值。如果省略表达式2:for(表达式1;表达式3)循环语句;则表示表达式2的值始终为真,循环将无终止地进行下去。例如:,4.3for语句,for(i=1;i+)printf(%d,i);将无限循环输出1,2,3,4,5,6,如果省略表达式3:for(表达式1;表达式2;)循环语句;此时,也将产生一个无穷循环。因此,程序设计者应另外设法保证循环能正常结束,可以将循环变量的修改部分(即表达式3)放在循环语句中控制。例如:,4.3for语句,for(i=1;i<=100;)sum+=i;i+;上述for语句中没有表达式3,而是将表达式3(i+)放在循环语句中,作用相同,都能使循环正常结束。注意表达式2后面的分号不能省略。可以同时省略表达式1和表达式3:for(;表达式2;)循环语句;,4.3for语句,即省略了循环的初值和循环变量的修改部分,此时完全等价于while语句。同时省略表达式1、表达式2和表达式3,但两个分号不能缺省:for(;)循环语句;相当于赋循环变量的初值,循环控制条件始终为真,不修改循环变量,故循环将无终止地进行下去。在for语句中,表达式1和表达式3不仅可以使用简单表达式,也可以使用逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。在逗号表达式内按自左至右求解,整个表达式的值为其中最右边的表达式的值。例如:,4.3for语句,for(i=1;i<=100;i+,sum=sum+i)相当于for(i=1;i<=100;i+)sum=sum+i;在for语句中,表达式一般为关系表达式或逻辑表达式,但也可以是其他表达式(如字符表达式、数值表达式)。for语句的循环语句可以是空语句。空语句用来实现延时,即在程序执行中等待一定的时间。例如:for(i=1;i<=1000;i+);注意以上语句最后的分号不省略,则代表一个空语句。,4.3for语句,4.3for语句,2.for语句实例【例4.3.1】用for语句计算1+2+3+100。算法:步骤一:先赋变量sum初始值为0,i初始值为1。步骤二:当i小于等于100时,重复执行步骤三和四,否则执行步骤五。步骤三:sum+i后赋给sum。步骤四:i+1后赋给i,转回步骤二继续执行。步骤五:输出sum的值。流程图如图4-3-2所示。,4.3for语句,程序运行结果:sum=5050,4.3for语句,【分析】变量sum的初始值为0,计算表达式1的值即i的值为1,计算表达式2的值即i<=100,如果i<=100为真,则执行for循环体,再计算表达式3的值即i+,然后再计算表达式2的值,依此类推;如果表达式2为假,则结束循环,执行for语句下面的一条语句,输出sum的值。,4.3for语句,【例4.3.2】输出500以内的所有水仙花数。水仙花数是一个三位数,其各位数立方和等于该数本身(例如:13+53+33=153)。算法:步骤一:i初始值为100。步骤二:当i小于等于500时,重复执行步骤三和四,否则执行步骤五。步骤三:分离数i各位上的数字,如果各位数字上的立方和等于该数本身i,则输出数i。步骤四:i+1赋给i,转回步骤二继续执行。步骤五:程序结束。流程图如图4-3-3所示。,4.3for语句,4.3for语句,4.3for语句,程序运行结果:153370371407【分析】计算表达式1的值即i的值为100,计算表达式2的值即i<=500,如果i<=500为真,则执行for循环体,分离出个、十、百位上的数字g、s、b,执行if条件中的表达式,如果为真输出i,再计算表达式3的值即i自动加1,然后再计算表达式2的值,依此类推;如果表达式2为假,则结束循环,程序结束。,4.3for语句,【例4.3.3】用for语句计算s=1-3+5-7+-99+101。算法:步骤一:先赋求和变量s初始值为0,标志变量f初始值为1,循环变量i初始值为1。步骤二:当i小于等于101时,重复执行步骤三、四和五,否则执行步骤六。步骤三:执行s+f*i赋给s。步骤四:f乘以-1赋给f。步骤五:i+2后赋给i,转回步骤二继续执行。步骤六:输出s的值。流程图如图4-3-4所示。,4.3for语句,4.3for语句,程序运行结果:s=51,4.3for语句,【分析】变量s的初始值为0,f的初始值为1,计算表达式1的值即i的值为1,计算表达式2的值即i<=101,如果i<=101为真,则执行for循环体,执行s+f*i赋给s和f乘以-1赋给f,再计算表达式3的值即i=i+2,然后再计算表达式2的值,依此类推;如果表达式2为假,则结束循环,执行for语句下面的一条语句,输出s的值。,4.3for语句,4.4循环结构的嵌套,1.循环结构的嵌套在一个循环体内又完整地包含了另一个循环,称为循环嵌套。循环的嵌套可以是多层,但每一层循环在逻辑上必须是完整的。在书写上,循环的嵌套应采用缩进的形式,以使程序层次分明,可读性强。(1)循环嵌套的形式while与while二重嵌套while()while(),dowhile与dowhile二重嵌套dodowhile();while();,4.4循环结构的嵌套,for与for二重嵌套for(;)for(;)(2)循环嵌套的说明三种循环语句不仅各自可以嵌套,而且还可以互相嵌套。例如:,4.4循环结构的嵌套,while与dowhile二重嵌套while()dowhile();,4.4循环结构的嵌套,while与for二重嵌套while()for(;),4.4循环结构的嵌套,dowhile与for二重嵌套dofor(;)while();,4.4循环结构的嵌套,使用嵌套时,应注意一个循环结构应完整地嵌套在另一个循环体内,不允许循环体间交叉。除了上述二重嵌套外,还可以有三重嵌套、四重嵌套等多层嵌套。嵌套的外循环和内循环的循环控制变量不得同名,但并列的内、外循环允许有同名的循环控制变量。例如:,4.4循环结构的嵌套,4.4循环结构的嵌套,2.循环结构嵌套的实例【例4.4.1】求s=1!+3!+5!+7!。,4.4循环结构的嵌套,【例4.4.2】输出以下图案。,4.4循环结构的嵌套,4.4循环结构的嵌套,4.4循环结构的嵌套,【分析】外循环包括两个内循环,两个内循环为并列的关系,其中,外循环用来控制图案的行数,第一个内循环用来控制该行的空格个数,第二个内循环用来控制该行的*个数。,4.5break和continue语句,while、dowhile和for循环三种循环异同点:用while和dowhile循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在表达式1中进行;while循环和for循环都是先判断表达式,后执行循环体,而dowhile循环是先执行循环体后判断表达式,也就是说dowhile的循环体至少被执行一次,而while循环和for循环的循环体可能一次都不执行。在循环体中都有改变循环变量的值的操作,从而最终终止循环。这三种循环都可以用break语句跳出循环,用continue语句结束本次循环。,4.5break和continue语句,1.break和continue语句在循环体中的作用(1)break语句使用break语句可以使流程跳出switch语句体,在循环结构中,也可以使用break语句使流程跳出本层循环体,从而提前结束本层循环。break语句的一般形式如下:break;注意:break语句只能用于switch语句体和循环体中,不能用于其他语句中。break语句在循环语句中只能用于循环体内,而不能用在循环语句上。如“for(i=1;i<10;break,i+)”是不正确的。,4.5break和continue语句,break语句只能跳出一层循环,即从当前循环层中跳出,可能还在外层的循环体中。如果要跳出多层循环,可使用goto语句。当循环体中嵌套有switch语句时,如果break语句出现在switch语句体中,则只表示跳出switch语句体,而非跳出循环。(2)continue语句continue语句的一般形式如下:continue;其作用是结束本次循环,即跳过本次循环体中余下的尚未执行的语句,立刻进行下一次的循环条件判定。,4.5break和continue语句,具体来说,对于while和dowhile语句,遇continue语句后,转向执行while之后圆括号内的条件表达式的判断;对于for语句,遇continue语句后,转向执行表达式3。注意:continue语句只能用于循环语句中,执行continue语句并没有使整个循环终止,只是结束本次循环,而break语句的作用则是跳出本层循环,终止当前层的循环。,4.5break和continue语句,2.break和continue语句实例【例4.5.1】输入数n,判断该数是否为素数。算法:步骤一:输入数n。步骤二:i初始值为2。步骤三:当i小于n时,重复执行步骤四和五,否则执行步骤五。步骤四:执行表达式n%i=0,若为真则转步骤五,否则执行i+1赋给i,重复执行步骤三。步骤五:执行表达式i<n,若为真输出n是合数,否则输出n是素数。流程图如图4-5-1所示。,4.5break和continue语句,4.5break和continue语句,4.5break和continue语句,程序运行结果:请输入整数n:1010是合数【分析】先输入数n,计算表达式1的值即i的值为2,计算表达式2的值即i=n时则退出循环体。然后继续执行表达式i<n,若i<n为真则输出n是合数,否则输出n是素数。,4.5break和continue语句,【例4.5.2】输出100200之间不能被3整除的数。算法:步骤一:i初始值为100。步骤二:当i<=200时,重复执行步骤三和四,否则执行步骤五。步骤三:计算表达式i%3=0,若为真则转步骤四,否则输出数i。步骤四:执行i+1赋给i,重复执行步骤二。步骤五:运行程序结束。流程图如图4-5-2所示。,4.5break和continue语句,4.5break和continue语句,4.5break和continue语句,程序运行结果:100101103104106107109110112113115116118119121122124125127128130131133134136137139140142143145146148149151152154155157158160161163164166167169170172173175176178179181182184185187188190191193194196197199200【分析】计算表达式1的值即i的值为100,计算表达式2的值即i200时则退出循环体,程序结束。,4.6循环结构程序实例,1.数位分离【例4.6.1】程序填空:将1001000之间个位、十位、百位均相同的三位数输出来。(例如:111、222),4.5break和continue语句,【参考答案】1i=1002i3i/100,4.6循环结构程序实例,1.数位分离【例4.6.1】程序填空:将1001000之间个位、十位、百位均相同的三位数输出来。(例如:111、222),【参考答案】1i=1002i3i/100,4.6循环结构程序实例,4.6循环结构程序实例,1.数位分离【例4.6.1】程序填空:将1001000之间个位、十位、百位均相同的三位数输出来。(例如:111、222),【参考答案】1i=1002i3i/100,4.6循环结构程序实例,4.6循环结构程序实例,【例4.6.2】程序填空:从键盘输入一个十进制整数,将其转换为二进制后反序再转成新的十进制后输出。(例如:111011110113),【参考答案】1&n2n!=03n%24n/25x,4.6循环结构程序实例,4.6循环结构程序实例,【例4.6.3】程序填空:求的值,其中a为一个数字,要求a以及所加数字个数由键盘输入。(例如:3+33+333+3333+33333),【参考答案】1a2i<=n3s+t4t*10+a5s,4.6循环结构程序实例,4.6循环结构程序实例,2.累加累乘累加累乘问题通常采用:(1)在求和求积问题中,一般采用循环语句实现反复累加和累乘。循环体中的赋值语句形式的选择,应根据题目中各项间的特点而定。例如:求累加一般用s=s+t形式的赋值语句;求阶乘(n!)一般需要用p=p*t形式的赋值语句;其他类型的亦根据其计算式中每一项的特点来定,如求1+21+22+2n,可以用t=2n和s=s+t形式的赋值语句。(2)循环体内的变量通常先给定初始值。一般累乘器的变量初始值为1,累加器中的变量初始值为0,也可将第一、二次循环得出的结果与所求式子第一、二项相比,来确定初值。,(3)对变量赋初始值的语句应放在循环体之外。对于双重循环,则内循环体中的变量取初始值的语句应在内循环外;外循环体中的变量取初始值的语句应在外循环体外。【例4.6.4】程序填空:求s=1+2+3+n(n由键盘输入)。,4.6循环结构程序实例,【参考答案】1stdio.h203i=1e-53t/i4i+5e,4.6循环结构程序实例,【例4.6.8】程序填空:求,4.6循环结构程序实例,【参考答案】102i+=2314j+5s+i/t,4.6循环结构程序实例,4.6循环结构程序实例,3.数列【例4.6.9】程序填空:斐波那契数列的前几项是1,1,2,3,5,8,13,21,要求输出该数列的前20项,每行输出10个。,【参考答案】1i=32b3c4c5i%10=0,4.6循环结构程序实例,【例4.6.10】程序填空:有一数列求此数列的前10项之和。,4.6循环结构程序实例,【参考答案】1n+2a3a+b4t5s,4.6循环结构程序实例,4.6循环结构程序实例,4.素数所谓素数就是只能被1和其本身所整除的数。因为如果一个数不是质数而是合数,那么一定可以由两个自然数相乘得到,其中一个大于或等于平方根,另一个小于或等于平方根,并且成对出现。即一个因子比它的平方根小,另一个因子要比它的平方根大(例如16,其中2、8均是它的因子,8大于4,而2小于4);或者等同于平方根(例如9=3*3)。当进行质数判断的时候不需要判断到全部数字,只需要判断到平方根就可以了。判断一个数m是否为素数的算法:(1)令n=m开二次方向下取整。(2)循环检查从2开始到n的每一个数字是否能整除m,如果能,终止循环,返回m非素数。,4.6循环结构程序实例,(3)循环结束,返回m为素数。【例4.6.11】程序填空:判断m是否为素数。,【分析】让m被2除,如果m能被2中任何一个整数整除,则提前结束循环,此时i必然小于或等于k(即);如果m不能被2中任何一个整数整除,则在完成最后一次循环后,i要自动加1,因此i=k+1,最后才终止循环。在循环之后判别i的值是否大于k,若是,则表明未曾被2k之间任一整数整除过,因此输出该数是素数。【参考答案】1math.h2sqrt(m)3break4i>k5m,4.6循环结构程序实例,【例4.6.12】程序填空:求100到200间的所有素数,输出时每个数占5个字符宽度,10个一行。(要求在奇数中找素数。),4.6循环结构程序实例,【参考答案】1math.h2sqrt(m)3m%i=04m5n%10=0,4.6循环结构程序实例,4.6循环结构程序实例,5.素数最大公约数和最小公倍数辗转相除法求两整数a和b最大公约数算法如下:步骤一:a%b得余数c。步骤二:若c等于0,则b即为两数的最大公约数,结束。步骤三:若c不等于0,则a=b,b=c,再转回执行步骤一。例如:a=25,b=15,a/b=110,15/10=15,10/5=20,最后一个为余数为0的除数是5,5就是所求最大公约数。最小公倍数:两数的积除以最大公约数。,【例4.6.13】程序填空:用辗转相除法求两数的最大公约数,两数由键盘输入。,4.6循环结构程序实例,【参考答案】1r2r!=03n4m%n5n,4.6循环结构程序实例,【例4.6.14】程序填空:用辗转相除法求两数的最大公约数和最小公倍数,两数由键盘输入。,4.6循环结构程序实例,【参考答案】1&m2m3m*n4r%m5m,4.6循环结构程序实例,注意:m与n也可以不交换,只是要多循环一次。用辗转相除法求几个数的最大公约数,可以先求出其中任意两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数,依次求下去,直到最后一个数为止。最后所得的那个最大公约数,就是所有这些数的最大公约数。若求三个数的最小公倍数,先求两个数的最小公倍数,然后再求出这个最小公倍数与第三个数的最小公倍数,即为这三个数的最小公倍数。,4.6循环结构程序实例,6.闰年【例4.6.15】程序填空:输出从公元2000年至3000年所有闰年的年号,每输出10个年号换一行。判断公元年是否为闰年的条件:(1)公元年数如能被4整除,而不能被100整除,则是闰年。(2)公元年数能被400整除的也是闰年。,4.6循环结构程序实例,4.6循环结构程序实例,【参考答案】102i%4=03i%400=04i5n%10=0,4.6循环结构程序实例,【例4.6.16】程序填空:输入一个年月日,要求输出这一天是该年的第几天。(例如:2000年3月2日是该年的第62天。),4.6循环结构程序实例,4.6循环结构程序实例,【参考答案】1i<month2break3304year%4=0&&year%100!=0|year%400=05days+day,4.6循环结构程序实例,4.6循环结构程序实例,7.统计判断【例4.6.17】程序填空:求由键盘输入的五个数中的最大值和最小值。,【参考答案】1stdio.h2i=13j<=10-i4j<=2*i-15n,4.6循环结构程序实例,【例4.6.22】程序填空:编写程序打印如下图形。,4.6循环结构程序实例,4.6循环结构程序实例,【参考答案】1i<=42j<=4-i3k<=2*i-14i<=35k<=7-2*i,4.6循环结构程序实例,【例4.6.23】程序填空:编写程序打印如下图形,图案的行数由输入的整数确定。,4.6循环结构程序实例,4.6循环结构程序实例,【参考答案】1&n2j<=n-i3k<=2*i-14%c5n,4.6循环结构程序实例,4.6循环结构程序实例,9.其他【例4.6.24】程序填空:将一张100元钞票换成等值的10元,5元,2元和1元的小钞,每次换成40张小钞,要求每一种小钞都要有,编程求出所有可能的换法总数并输出各换法的组合。,4.6循环结构程序实例,【参考答案】1i+2i+j+k+m=403i*10+j*5+k*2+m*1=1004m5s+,4.6循环结构程序实例,本章主要介绍了循环结构中的while语句、dowhile语句和for语句;掌握循环结构语句的一般形式和执行过程,理解break和continue语句在循环体中的作用;能运用循环语句进行简单的循环结构程序设计,能初步分析程序运行结果。,本章小结,1.程序填空:要求计算1-2+3-4+5-100的值。,习题,2.程序填空:要求统计10个整数中的奇偶数的个数。,习题,3.程序填空:要求按下图所示格式输出99乘法表。,习题,4.程序填空:求前100个素数,要求输出时每个数占5个字符宽度,且10个一行。,习题,5.程序填空:要求输出如下所示图案的程序。,习题,6.程序填空:求s=1+2+3+n(n由键盘输入)。,习题,7.编程:,习题,8.编程:输出100到999之间的各位数字之和等于15的所有整数,输出时每10个一行。,习题,9.编程:求n的阶乘。,习题,10.编程:求s=1+3+5+7+9+,其和小于等于500的最大项。,习题,谢谢观看THANKYOU,

    注意事项

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

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




    关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

    © 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

    黑龙江省互联网违法和不良信息举报
    举报电话:0468-3380021 邮箱:hgswwxb@163.com  

    收起
    展开