欢迎来到天天文库
浏览记录
ID:56527496
大小:420.50 KB
页数:46页
时间:2020-06-27
《C语言课件(谭浩强版).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章循环结构程序设计实验作业:129~130页2、3、5、6、7、8、10、141循环就是重复时钟的循环是无限循环循环是在满足一定条件时重复执行一段程序2问题:将任意若干大写字母转化为小写字母显示算法:将处理一个字母时的方法扩展到处理多个字母c=getchar()'A'=2、:用于定义程序中的某个位置构成:标识符:如:start:破坏程序的结构,应避免使用5用if-goto语句构成循环#includevoidmain(){intk=1,s=0;loop:if(k<=3){s=s+k;k++;gotoloop;}printf("s=%d",s);}【例5.1】计算s=∑3k=1k6while循环表达式语句真(非0)下一语句假(0)while(表达式)语句用while语句实现当型循环表达式语句N-S图While语句的一般形式:7分析:这是一个累加求和问题s=1+2+3和的新值和的当前值求和项当前值【例5.1】计算s=∑3、3k=1ks=0+1s=1+2s=3+3sk=sk-1+ks=s+ks=0s=s+1s=s+2s=s+38#includevoidmain(){intk,s;s=0;k=1;while(k<=3){s=s+k;k++;}printf("s=%d",s);}s=0,k=1k<=3s=s+kk++输出s9#includevoidmain(){intk,s;s=0;k=1;while(k<=3){s=s+k;k++;}printf("s=%d",s);}①求和项增值②修改循环条件while(k<=3){s=s+k;k++;}if4、(k<=3){s=s+k;k++;}if(k<=3){s=s+k;k++;}if(k<=3){s=s+k;k++;}s=0k=1s=1k=2s=3k=3s=6k=4?有什么作用10【例5.2】求任意两个正整数m和n的最大公约数和最小公倍数1.用辗转相除法求最大公约数m对n求余数为a,若a≠0,则mn,na,继续求余;否则n为最大公约数例如,设m=12,n=21,计算过程如下:计算次数被除数除数余数11221122211293129349303112.最小公倍数=即m·n/n'两个数的积最大公约数为什么是n'?输入m,nm1=m,n1=n,a=m1%n1a≠0m15、=n1n1=aa=m1%n1输出n1及m·n/n112#includevoidmain(){intm,n,m1,n1,a;printf("输入两个正整数:");scanf("%d,%d",&m,&n);m1=m;n1=n;a=m1%n1;while(a!=0){m1=n1;n1=a;a=m1%n1;}printf("最大公约数是%d",n1);printf("最小公倍数是%d",m/n1*n);}m*n/n1?13do-while语句do语句while(表达式);语句表达式形式为:do-while语句用来实现直到型循环语句表达式下一语句真假6、不可省略!切记切记!!!14s=0,k=1s=s+kk++k<=3输出s【例5.1】计算s=∑3k=1ks=0,k=1k<=3s=s+kk++输出s15#includevoidmain(){intk,s;s=0;k=1;do{s=s+k;k++;}while(k<=3);printf("s=%d",s);}#includevoidmain(){intk,s;s=0;k=1;while(k<=3){s=s+k;k++;}printf("s=%d",s);}16for循环求解表达式1表达式2语句求解表达式3真假下一语句求解表达7、式1表达式2语句求解表达式3表达式1在进入循环之前求解表达式3是循环体的一部分for循环的一般形式:for(表达式1;表达式2;表达式3)语句17表达式1;表达式3;{}这个分号不能移走这个分号不能丢掉for(表达式1;表达式2;表达式3)语句表达式1可以移到for语句的前边表达式3可以移到内嵌语句的后边表达式2为空值永远为真成为死循环18说明1.表达式1省略时,应在for前给循环变量赋初值如:k=1;for(;k<=3;k++)s=s+k;2.表达式2省略时,将成为“死循环”需要在循环体中引入break语句以退出循环如:for(k=1;;k++){if(k>1
2、:用于定义程序中的某个位置构成:标识符:如:start:破坏程序的结构,应避免使用5用if-goto语句构成循环#includevoidmain(){intk=1,s=0;loop:if(k<=3){s=s+k;k++;gotoloop;}printf("s=%d",s);}【例5.1】计算s=∑3k=1k6while循环表达式语句真(非0)下一语句假(0)while(表达式)语句用while语句实现当型循环表达式语句N-S图While语句的一般形式:7分析:这是一个累加求和问题s=1+2+3和的新值和的当前值求和项当前值【例5.1】计算s=∑
3、3k=1ks=0+1s=1+2s=3+3sk=sk-1+ks=s+ks=0s=s+1s=s+2s=s+38#includevoidmain(){intk,s;s=0;k=1;while(k<=3){s=s+k;k++;}printf("s=%d",s);}s=0,k=1k<=3s=s+kk++输出s9#includevoidmain(){intk,s;s=0;k=1;while(k<=3){s=s+k;k++;}printf("s=%d",s);}①求和项增值②修改循环条件while(k<=3){s=s+k;k++;}if
4、(k<=3){s=s+k;k++;}if(k<=3){s=s+k;k++;}if(k<=3){s=s+k;k++;}s=0k=1s=1k=2s=3k=3s=6k=4?有什么作用10【例5.2】求任意两个正整数m和n的最大公约数和最小公倍数1.用辗转相除法求最大公约数m对n求余数为a,若a≠0,则mn,na,继续求余;否则n为最大公约数例如,设m=12,n=21,计算过程如下:计算次数被除数除数余数11221122211293129349303112.最小公倍数=即m·n/n'两个数的积最大公约数为什么是n'?输入m,nm1=m,n1=n,a=m1%n1a≠0m1
5、=n1n1=aa=m1%n1输出n1及m·n/n112#includevoidmain(){intm,n,m1,n1,a;printf("输入两个正整数:");scanf("%d,%d",&m,&n);m1=m;n1=n;a=m1%n1;while(a!=0){m1=n1;n1=a;a=m1%n1;}printf("最大公约数是%d",n1);printf("最小公倍数是%d",m/n1*n);}m*n/n1?13do-while语句do语句while(表达式);语句表达式形式为:do-while语句用来实现直到型循环语句表达式下一语句真假
6、不可省略!切记切记!!!14s=0,k=1s=s+kk++k<=3输出s【例5.1】计算s=∑3k=1ks=0,k=1k<=3s=s+kk++输出s15#includevoidmain(){intk,s;s=0;k=1;do{s=s+k;k++;}while(k<=3);printf("s=%d",s);}#includevoidmain(){intk,s;s=0;k=1;while(k<=3){s=s+k;k++;}printf("s=%d",s);}16for循环求解表达式1表达式2语句求解表达式3真假下一语句求解表达
7、式1表达式2语句求解表达式3表达式1在进入循环之前求解表达式3是循环体的一部分for循环的一般形式:for(表达式1;表达式2;表达式3)语句17表达式1;表达式3;{}这个分号不能移走这个分号不能丢掉for(表达式1;表达式2;表达式3)语句表达式1可以移到for语句的前边表达式3可以移到内嵌语句的后边表达式2为空值永远为真成为死循环18说明1.表达式1省略时,应在for前给循环变量赋初值如:k=1;for(;k<=3;k++)s=s+k;2.表达式2省略时,将成为“死循环”需要在循环体中引入break语句以退出循环如:for(k=1;;k++){if(k>1
此文档下载收益归作者所有