5 循环结构程序设计

5 循环结构程序设计

ID:5994277

大小:563.50 KB

页数:64页

时间:2017-11-13

5 循环结构程序设计_第1页
5 循环结构程序设计_第2页
5 循环结构程序设计_第3页
5 循环结构程序设计_第4页
5 循环结构程序设计_第5页
资源描述:

《5 循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章循环结构程序设计5.1概述为了方便地处理循环问题,C语言提供了3种用于循环控制的语句:while语句、do-while语句、for语句。5.2while语句一般形式为:while(表达式)循环体语句表达式语句非00例5.1求1+2+3+...+10的和。#include"stdio.h"voidmain(){inti=1,iSum=0;while(i<=10){iSum=iSum+i;printf("i=%2d,iSum=%2d",i,iSum);i++;}printf("1+2+3+...+10=

2、%d",iSum);}输出结果:i=1,iSum=1i=2,iSum=3i=3,iSum=6i=4,iSum=10i=5,iSum=15i=6,iSum=21i=7,iSum=28i=8,iSum=36i=9,iSum=45i=10,iSum=551+2+3+...+10=55例5.2利用格里高利公式求π:π/4=1-1/3+1/5-1/7+...,直到最后一项的绝对值小于等于10-6为止。#include"stdio.h"#include"math.h"voidmain(){doublet=1.0,pi

3、=0.0;//t表示通项公式中的每一项longintn=1,s=1;//n表示每一项中的分母,s表示每一项的符号while(fabs(t)>1e-6){pi=pi+t;n=n+2;s=-s;t=(float)(s)/(float)(n);}pi=pi*4;printf("pi=%lf",pi);}输出结果:pi=3.141591例5.3求两个正整数的最大公约数。/*用Euclid(欧几里得)算法求最大公约数*/#include"stdio.h"voidmain(){intm,n,r;printf("p

4、leaseinputtwopositiveintegers:");scanf("%d%d",&m,&n);r=m%n;//求余数while(r!=0){m=n;n=r;r=m%n;}printf("Theirgreatestcommondivisoris%d.",n);}输出结果:pleaseinputtwopositiveintegers:6424Theirgreatestcommondivisoris8.例5.4跳过输入字符中的空白字符,输出第一个非空白字符。#include"stdio.h"void

5、main(){charc;while((c=getchar())==''

6、

7、c=='t'

8、

9、c=='');putchar(c);putchar('');}例5.5不用空语句实现的例5.4。5.3do-while语句一般形式为:do循环体语句while(表达式);语句表达式?0非0例5.6求1+2+3+...+10的和。#include"stdio.h"voidmain(){inti=1,iSum=0;do{iSum=iSum+i;printf("i=%2d,iSum=%2d",i,iSum);i

10、++;}while(i<=10);printf("1+2+3+...+10=%d",iSum);}输出结果:i=1,iSum=1i=2,iSum=3i=3,iSum=6i=4,iSum=10i=5,iSum=15i=6,iSum=21i=7,iSum=28i=8,iSum=36i=9,iSum=45i=10,iSum=551+2+3+...+10=55例5.7将一个给定的整数反序输出。#include"stdio.h"voidmain(){inti,r;printf("Inputaninteger:"

11、);scanf("%d",&i);if(i<0){printf("-");//如果i是负整数,输出时首先加一个负号i=-i;//然后对i取负,得到它的绝对值}do{r=i%10;//提取出当前i的个位数字printf("%d",r);}while((i=i/10)!=0);//去掉当前i的个位数字,并判断这个新值是否为0printf("");}输出结果:Inputaninteger:19833891例5.8/*用while循环将一个给定的整数反序输出*/#include"stdio.h"voidmain(

12、){inti,r;printf("Inputaninteger:");scanf("%d",&i);if(i<0){printf("-");//如果i是负整数,输出时首先加一个负号i=-i;//然后对i取负,得到它的绝对值}if(i==0)printf("%d",i);while(i!=0){r=i%10;printf("%d",r);i=i/10;}printf("");}注意:循环体的有

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。