C语言循环语句课件四章.ppt_第1页
C语言循环语句课件四章.ppt_第2页
C语言循环语句课件四章.ppt_第3页
C语言循环语句课件四章.ppt_第4页
C语言循环语句课件四章.ppt_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

循环结构,李晓玲,Page2,本章结构,循环结构,循环结构概述,循环结构的嵌套,for语句,while语句,dowhile语句,Page3,本章目标,了解循环结构、循环语句重点掌握for语句、while语句和dowhile语句的语法形式、执行顺序及用法掌握循环结构的嵌套使用方法,Page4,循环结构概述,为什么用循环结构?循环的基本步骤是什么?循环结构的定义?,Page5,为什么用循环结构?,在程序设计中经常会遇到在某一条件成立时,重复执行某些操作。例如,求:sum=1+2+3+4+n,Page6,循环的基本步骤,(1)给sum赋值0,i赋值1;,(2)令sum=sum+i,i=i+1;,(3)若i=n,则重复执行(2),(4)输出sum的值,Page7,循环结构的定义,循环结构:就是在给定条件成立的情况下,重复执行一个程序段;当给定条件不成立时,退出循环,再执行循环下面的程序。循环语句:实现循环结构的语句称为循环语句。在C中,循环语句有以下三种:for语句while语句dowhile语句,Page8,for语句(P29),语法形式:for(表达式1;表达式2;表达式3)语句说明:圆括号内的三个表达式用分号“;”隔开;表达式1称为循环初始化表达式,通常为赋值表达式;表达式2称为循环条件表达式,通常为关系或逻辑表达式;表达式3称为循环增量表达式,通常为赋值表达式,增量大小通常称为步长;语句称为循环体,可以是单个语句,也可以是多个语句。,for(循环初始化;循环条件;循环增量),Page9,for语句,表达式1可以省略for(;表达式2;表达式3)表达式1和3都可以省略for(;表达式2;)如果表达式3省略,则在循环体内应该有改变循环条件的语句表达式1和3可以是简单表达式,也可以是逗号表达式for(i=0,j=100;i=j;i+,j-)k=i+j;,i=1;for(;i=100;i+)sum=sum+i;,Page10,for语句,执行顺序(1)计算表达式1的值;(2)计算表达式2的值,若表达式2的值为true,则转到(3);若为false,则结束循环(3)执行循环体语句;(4)计算表达式3的值,返回(2)继续执行。流程图,表达式2,语句,false,true,求解表达式1,求解表达式3,Page11,省略表达式1的写法同时省略表达式1和3时的写法,for语句,例求自然数110之和。#includevoidmain()inti,sum=0;for(i=1;i=10;i+)sum+=i;printf(“sum=%dn”,sum);,?,分析:本题需要用累加算法,累加过程是一个循环过程,可以用for语句实现。,Page12,for语句书上例子及练习,P30例2-7P32例2-8sum=1-1/3+1/5-1/7+1/nP33例2-9求n!P34练习2-13到2-17复习分支语句和for语句的综合例题:P46例3-4P50例3-6P54例3-9,Page13,while语句(当型循环),语法形式:while(表达式)语句说明:表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对圆括号“()”括起来。语句称为循环体,可以是单个语句,也可以是多个语句。,循环控制条件,循环体,Page14,while语句(当型循环),执行顺序判断表达式(循环控制条件)的值若表达式的值为true,则执行循环体(语句)若表达式的值为false,则执行while语句后的语句流程图注意:在循环体中,一般应该包含改变循环条件表达式的语句。,表达式,语句,false,true,Page15,while语句(当型循环),例求自然数110之和。分析:本题需要用累加算法,累加过程是一个循环过程,可以用while语句实现。流程图,Page16,while语句(当型循环),例求自然数110之和的源程序。#includevoidmain()inti=1,sum=0;while(i=10)sum+=i;i+;printf(“sum=%dn”,sum);,运行结果:sum=55,Page17,while语句书上例子及练习,P58例4-1P61例4-2P62练习4-1、4-2、4-3、4-4,Page18,dowhile语句(直到型循环),语法形式:do语句while(表达式);说明:表达式称为循环控制条件表达式,一般为关系表达式或逻辑表达式,必须用一对圆括号“()”括起来。语句称为循环体,可以是单个语句,也可以是多个语句。dowhile语句以分号结束。,循环控制条件,循环体,以分号结束,Page19,dowhile语句(直到型循环),执行顺序先执行语句,后判断表达式的值若表达式的值为true,则继续执行循环体(语句)若表达式的值为false,则结束循环,执行dowhile语句后的语句流程图注意:在循环体中,一般应该包含改变条件表达式的语句。,语句,false,true,表达式,Page20,dowhile语句(直到型循环),例用dowhile语句求自然数110之和。分析:本题需要用累加算法,累加过程是一个循环过程,可以用dowhile语句实现。流程图,Page21,dowhile语句(直到型循环),例求自然数110之和的源程序。#includevoidmain()inti=1,sum=0;dosum+=i;i+;while(i=10);printf(“sum=%dn”,sum);,运行结果:sum=55,Page22,dowhile语句书上例子及练习,P62例4-3P64练习4-5,Page23,dowhile和while语句的区别,相同点:都是实现循环结构的语句区别:while语句先判断表达式的值,为true时,执行循环体;(先判断,后执行)dowhile语句先执行循环体,再判断表达式的值。(先执行,后判断)思考题:在什么情况下,while和dowhile语句的条件表达式和循环体相同,而循环次数却不同?,?,Page24,循环结构的嵌套,在程序设计中,一个循环语句的循环体又包含一个完整的循环结构时,构成多重循环,又称为循环语句的嵌套。for()dowhile();,for()dowhile();,Page25,循环结构的嵌套,例写出右面图形的源程序。#includevoidmain()inti,j;for(i=1;i=3;i+)for(j=1;j=3)位数字的数,它等于每个数字的n次幂之和。输入两个正整数m和n,求其最大公约数和最小公倍数。,Page30,3.求1599中能被3整除,且至少有一位数字为5的所有整数。,判断a、b、c中是否有5:将1599中三位整数i分解成个位、十位、百位,分别存放在变量a、b、c中。然后判断这三个变量是否含5。将三位整数i(设i=513)分解成个位、十位、百位的方法是:c=i/100;/百位b=i%100/10;/十位a=i%100%10;/个位,Page31,#includevoidmain()inti,a,b,c;for(i=1;i=599;i+)c=i/100;/百位b=i%100/10;/十位a=i%100%10;/个位if(i%3=0,Page32,4.输出9*9口诀表,#includevoidmain()inti,j;for(i=1;i=9;i+)for(j=1;j=i;j+)printf(%d*%d=%2d,i,j,i*j);printf(n);,Page33,打印下列图形,#includevoidmain()inti,j;for(i=1;i=5;i+)for(j=1;j=i;j+)printf(*);printf(n);,Page34,打印下列图形,#includevoidmain()inti,j;for(i=1;i=i;j-)printf();for(j=1;j=i;j+)printf(*);printf(n);,Page35,打印下列图形,#includevoidmain()inti,j;for(i=1;i=i;j-)printf(*);printf(n);,Page36,打印下列图形,#includevoidmain()inti,j,n;printf(请输入棱形的对角线半长度n:);scanf(%d,Page37,打印下列图形,#include#includevoidmain()inti,j;for(i=-3;i=3;i+)for(j=0;j=10+abs(i);j+)printf();for(j=1;j=2*(4-abs(i)-1;j+)printf(*);printf(n);,Page38,7.找出1000以内的所有完数,#includevoidmain()inti,j,s;for(i=1;i=1000;i+)s=0;for(j=1;jk,则a为素数printf(%10d,a);/输出素数n=n+1;/对素数进行统计个数printf(n);,求100之内的素数,Page41,输入两个正整数m和n,求其最大公约数和最小公倍数。,辗转相除法是利用以下性质来确定两个正整数a和b的最大公因子的:1.ab,令r为所得余数(0rb)若r=0,算法结束;b即为答案。2.互换:置ab,br,并返回第一步。,Page42,求两个自然数m与n的最大公约数采用辗转相除法设最小公倍数(Leasecommonmultiple)为lcm=m*n;最大公约数(Greatestcommondivisor)为gcd。可采用如下循环实现:(循环前lcm=m*n)r=m%n;mn;nr;直

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论