资源描述:
《c语言 do...while语句》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、do...while语句直到型循环知识点学习注意要点:(1)do…while结构末尾,有分号。(2)执行过程:先执行一遍循环体语句,再判断条件,若条件为真,继续执行循环体语句,再判断条件,直到条件为假为止。实训1:求的值,其中n由用户输入。请分别用while语句和do…while语句编写程序代码1.定义n放用户输入数;定义循环变量i,i初值为1;定义sum放累加和,sum初值为0。2.循环条件为i<=n,每次i加13.循环的过程中,sum=sum+i*i用while实现的代码如下:#includeintmain(){//1.定义n,定义i作循环变量,初值
2、为1,定义sum放累加和,初值为0longn,i=1,sum=0;//2.用户输入n值printf("请输入正整数n:");scanf("%ld",&n);//3.求1平方+2平方+...+n平方while(i<=n)//累加到n为止{sum=sum+i*i;i++;}printf("累加和为:%ld",sum);return0;}用do…while实现的代码如下:#includeintmain(){//1.定义n,定义i作循环变量,初值为1,定义sum放累加和,初值为0longn,i=1,sum=0;//2.用户输入n值printf("请输入正整数
3、n:");scanf("%ld",&n);//3.求1平方+2平方+...+n平方do{sum=sum+i*i;i++;}while(i<=n);printf("累加和为:%ld",sum);return0;}实训2:用do…while语句计算数列1/2、2/3、3/5、5/8、8/13、…的前10项和通过观察得知:前一个数的分子分母和变成了下一个数的分母,前一个数的分母变成了下一个数的分子。1.定义doublefenzi,fenmu两个变量分别表示分子和分母,分子的初值是1分母的初值是2定义sum放累加和。定义i为循环变量2.做循环,共循环10次,求出累加和3.循环
4、的过程中:前一个数的分子分母和变成了下一个数的分母,前一个数的分母变成了下一个数的分子。注意:要定义一个变量temp将上一次的分母暂时放起来代码如下:#includeintmain(){doublesum=0,fenzi=1,fenmu=2,temp;inti=1;do{sum=sum+fenzi/fenmu;temp=fenmu;fenmu=fenzi+fenmu;fenzi=temp;i++;}while(i<=10);printf("%lf",sum);return0;}实训3:用do…while语句计算满足的最大n值算法分析:1.定义循环变量i
5、,i初值为1;定义sum放累加和,sum初值为0。2.循环结束条件为sum<10003.输出i值即可#includeintmain(){//1.定义循环变量i,i从1开始循环//2.定义sum放累加和inti=0;intsum=0;do{sum=sum+i*i;i++;}while(sum<1000);//3.循环条件是累加和sum<1000//4.求得的i-1才是n值,因为求完累加和后,i的值又加了1。所有i用减去1才得n值printf("n的最大值是:%d",i-1);return0;}代码如下:实训4:有一张厚度为0.1mm的纸,假设它足够大
6、,重复将其对折,问对折多少次之后,其厚度可以达到珠穆朗玛峰的高度(8848180mm)?用do…while语句实现。提示:对折一张纸,实质就是厚度乘以2,次数加1.1.定义h表示厚度,h为循环变量,初值为0.1;定义count表示对折次数,count初值为02.循环的条件为h<88481803.循环的过程中h=h*2count=count+1#includeintmain(){doubleh=0.1;intcount=0;do{h=h*2;count=count+1;}while(h<8848180);printf("对折%d次后其厚度可以达到珠穆朗玛峰
7、的高度",count);return0;}代码如下:思考题:猴子吃桃问题。猴子第1天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第10天早上想再吃时,就只剩下一个桃子了。求第1天共摘了多少个桃子。提示:设第1天摘了n个桃子,第2天早上:吃掉的桃子:n/2+1,剩下的桃子:m=n-(n/2+1)=n/2-1因此得到:后面1天的桃子数m和前一天桃子数n的关系是:n=(m+1)*2第10天的桃子:1第9天的桃子:(1+1)*2=4第