您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > C++第4章 循环结构程序设计2
2020年2月14日2时0分1第4章循环结构程序设计4.1循环语句的四种循环格式4.1.1goto格式标示符:if表达式{循环体;goto标示符;}22020年2月14日2时0分例:计算s=1+2+3+……+50#includeiostream.hmain(){inti=0,s=0;loop:if(i51){s=s+i;i=i+1;gotoloop;}couts=sendl;}2020年2月14日2时0分34.1.2while格式while表达式{循环体;}例:计算s=1+2+3+……+502020年2月14日2时0分4#includeiostream.hmain(){inti=0,s=0;while(i50){i=i+1;s=s+i;}couts=sendl;}2020年2月14日2时0分54.1.3do---while格式do{循环体;}while表达式;例:计算s=1+2+3+……+502020年2月14日2时0分6#includeiostream.hmain(){staticinti,s;do{s=s+i;i=i+1;}while(i51);couts=sendl;}72020年2月14日2时0分4.1.4for()格式for(表达式1;表达式2;表达式3){循环体}说明:1.表达式1决定了循环的初值,表达式2决定循环的条件,表达式3决定循环的增量。2.表达式1在循环中只执行一次。表达式2,表达式3在循环中每次都要执行一次。2020年2月14日2时0分8例:求S=1+2+3+……+100程序1:#includeiostream.hmain(){inti,s=0;for(i=1;i101;i++)s+=i;cout“sum=”sendl;}92020年2月14日2时0分程序2:#includeiostream.hmain(){inti=1,s;for(s=0;i101;i++)s+=i;coutsum=sendl;}2020年2月14日2时0分10程序3:#includeiostream.hmain(){inti=1,s=0;for(;i101;)s+=i++;coutsum=sendl;}2020年2月14日2时0分11程序4:#includeiostream.hmain(){inti=1,s=0;for(;i101;s+=i++);coutsum=sendl;}2020年2月14日2时0分12程序5:#includeiostream.hmain(){inti=100,s=0;for(;i;i--)s+=i;coutsum=sendl;}2020年2月14日2时0分13例:编程计算下列各项S=1+2+3+……+100S=1+22+32+……+1002S=1+3+5……+99S=1+1/2+1/3+……+1/100S=1/1+1/22+1/32+……+1/1002n!=1*2*3*……*nS=Σk!=1+2!+3!+……+n!S=1-2+3+……+(-1)nnS=1-1/2+1/3+……+(-1)n/nS=1-22+32-……+(-1)n1002e=1+1/1!+1/2!+1/3!+……+1/n!直到最后一项小于0.000012020年2月14日2时0分14ex=1+x/1!+x2/2!+x3/3!+……+xn/n!直到最后一项小于0.001s=1-1/2!+1/3!+……+(-)(n+1)/n!直到最后一项小于0.001s=1+x+x/2!+x/3!+……+x/n!直到最后一项小于0.00001s=1-x+x/2!-x/3!+……+(-)(n+1)x/n!直到最后一项小于0.001π/4=1-1/3+1/5-1/7+……求π,直到最后一项小于0.0012020年2月14日2时0分15求ex=1+x+x2/2!+x3/3!+……#includeiostream.hmain(){floatx;floatexe(float);cinx;coutexe(x);}2020年2月14日2时0分16floatexe(floatx){floats=1,t=1;inti=1;longf=1;do{t=t*x;f=f*i;s=s+t/f;i++;}while(1.0/f1e-3);returns;}2020年2月14日2时0分172.循环可以从小向大,也可以从大到小。例:计算s=1+2+3+……+100#includeiostream.hmain(){inti,s=0;for(i=100;i0;i--){s=s+i;}couts=sendl;}2020年2月14日2时0分183.循环变量的值起三个作用,一是记数,二是可以参加循环体计算,三是用做数组的下标。例:计算10个数的和#includeiostream.hmain(){inti,s=0;staticinta[10]={1,3,4,5,4,3,3,3,4,2};for(i=1;i10;i++){s=s+a[i];}couts=sendl;}2020年2月14日2时0分194.三个表达式可以有,也可以全无,但“;”不能少。如果表达式2无,程序将进入无限循环。5.可以用break命令中断循环.例:计算s=1+3+5+……+n直到最后一项为99止.#includeiostream.hmain(){inti,s=0;for(i=1;;i=i+2){if(i==101)break;s=s+i;}coutsendl;}2020年2月14日2时0分206.可以用continue命令中断当前这一次循环,继续下一次循环.例:计算s=1+3+5+……+99#includeiostream.hmain(){inti,s=0;for(i=1;i100;i++){if(i%2==0)continue;s=s+i;}couts=sendl;}2020年2月14日2时0分214.2多层循环例:开设3门课程,计算每个学生平均成绩#includeiostream.hmain(){inti,j,s=0;inta[5][3]={87,78,79,87,98,67,56,79,98};for(i=0;i3;i++){s=0;for(j=0;j3;j++){s=s+a[i][j];couta[i][j];}couts/3endl;}}2020年2月14日2时0分224.3循环中断break4.4exit()函数例:从键盘上输入字母,然后输出比它的ASCII码大1的字母#includeiostream.h#includestdio.hmain(){charch='a';coutinputletters=;2020年2月14日2时0分23while(ch!='#'){ch=getchar();if(ch=='z'||ch=='Z')putchar(ch-25);elseputchar(ch+1);}}2020年2月14日2时0分24题1:输出九九乘法表12345678911234567892246810121416189918273645546372812020年2月14日2时0分25#includeiostream.h#includeiomanip.hmain(){intk,j;cout;for(k=1;k10;k++)coutksetw(5);//width(5)cout'\n';2020年2月14日2时0分26for(k=1;k10;k++){coutsetw(5)k;for(j=1;j10;j++){coutsetw(5)k*j;}coutendl;}}//{cout.width(5);coutk*j;}2020年2月14日2时0分27题2:判断m是否是素数。#includeiostream.hmain(){intk,m,h=1;cinm;for(k=2;km;k++)if(m%k==0)h=0;if(h==1)coutm“isaprimenumber”endl;}2020年2月14日2时0分28题3;求出100以内的所有素数#includeiostream.hmain(){intk,m;for(m=3;m100;m=m+1){for(k=2;km;k++)if(m%k==0)break;if(k==m)coutmisaprimenumberendl;}}2020年2月14日2时0分29题4:求m,n的最大公约数#include“iostream.h”main(){intm1,n1,m,n,r;m%n=rcinmn;24168m1=m;n1=n;1680r=m%n;while(r!=0){m=n;n=r;r=m%n;}coutm1n1n;}2020年2月14日2时0分30题5:求Fibonaccii(斐波那契)数列中前20项中每一项(递推法)0,1,1,2,4,7,13,…循环次数abcd程序:10112#includeiostream.hmain()21124{longk,a=0,b=1,c=1,d;31247for(k=1;k18;k++)424713{d=a+b+c;coutdendl;a=b;b=c;c=d;}}2020年2月14日2时0分31题6:2010年人口13亿,年增长0.5%,多少年后达到或超过20亿?#includeiostream.hmain(){intn=0;floatf=13,e=0.005;while(f20){f=f*(1+e);n=n+1;}coutn;}2020年2月14日2时0分32题7:元买百鸡。公鸡5元一只,母鸡3元一只,小鸡1元两只。问100元买鸡多少只(穷举法)。#includeiostream.hmain(){intcock,hen,chick;for(cock=1;cock21;cock++)for(hen=1;hen34;hen++){chick=100-cock-hen;if(cock*5+hen*3+chick/2==100)coutcock'\t'hen'\t'chickendl;}}2020年2月14日2时0分33题8:用矩形法求定积分:(a=0,b=pi/2)dxxbasinabh=(b-a)/nArea1=f(x1)*hfor(x=a;xb;x=x+h)s=s+f(x)*h;2020年2月14日2时0分34程序:#includeiostream.h#includemath.hmain(){floata,b,x,h,s=0;cinab;//每输入一数用回车h=(b-a)/1000;for(x=a;xb;x=x+h)s=s+(sin(x)+sin(x+h))*h/2;couts;}2020年2月14日2时0分35题10:根据以下算术式,求A、B、C、DABCD-CDC_________ABC2020年2月14日2时0分36程序:#includeiostream.hmain(){inta,b,c,d,k1,k2;for(a=1;a10;a++)for(b=0;b10;b++)for(c=1;c10;c++)for(d=0;d10;d++){k1=a*1000+b*100+c*10+d;k2=c*100+d*10+c+a*100+b*10+c;if(k1==k2)couta'\t'b'\t'c'\t'd;};}}2020年2月14日2时0分37题11:输出图形AABCABCDEABCDEFG2020年2月14日2时0分38程序;#
本文标题:C++第4章 循环结构程序设计2
链接地址:https://www.777doc.com/doc-3747342 .html