还剩2页未读,继续阅读
文本内容:
第五章 循环控制
5.3输入两个正整数m和n,求其最大公约数和最小公倍数main{longmni=1js;scanf%ld%ldmn;for;i=mi=n;i++{ifm%i==0n%i==0s=i;}ifm=nj=m;elsej=n;for;!j%m==0j%n==0;j++;printfs=%ldj=%ld\nsj;}
5.4输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数#includestdio.hmain{charc;inti=0j=0k=0l=0;whilec=getchar!=’\n’{ifc=65c=90||c=97c=122i++;elseifc=48c=57j++;elseifc==32k++;elsel++;}printfi=%dj=%dk=%dl=%d\nijkl;}
5.5求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字例如2+22+222+2222+22222(n=5),n由键盘输入#includemath.hmain{intnsum=0i=1s=2;scanf%dn;whilei=n{sum=sum+s;s=s+2*pow10i;i++;}printfsum=%d\nsum;}
5.6求,(即求1!+2!+3!+4!+5!+…+20!)main{intni=1;longsum=0s=1;scanf%dn;whilei=n{s=s*i;sum=sum+s;i++;}printfsum=%ld\nsum;}
5.7求main{doublei=1j=1k=1s1=0s2=0s3=0sum;for;i=100;i++s1=s1+i;for;j=50;j++s2=s2+j*j;for;k=10;k++s3=s3+1/k;sum=s1+s2+s3;printfsum=%f\nsum;}
5.8打印出所有水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该本身例如153是一个水仙花数,因为153=1^3+5^3+3^3#includemath.hmain{intx=100abc;whilex=100x1000{a=
0.01*x;b=10*
0.01*x-a;c=x-100*a-10*b;ifx==powa3+powb3+powc3printf%5dx;x++;}}
5.9一个数如果恰好等于它的因子之和,这个数就称为完数例如,6的因子为
1、
2、3,而6=1+2+3,因此6是完数编程序找出1000之内的所有完数,并按下面格式输出其因子6 its factors are
1、
2、3main{intmijs;form=6;m10000;m++{s=1;fori=2;im;i++ifm%i==0s=s+i;ifm-s==0{printf%5ditsfastorsare1m;forj=2;jm;j++ifm%j==0printf%dj;printf\n;}}}或main{intmijs;form=6;m1000;m++{s=m-1;fori=2;im;i++ifm%i==0s=s-i;ifs==0{printf%5ditsfastorsare1m;forj=2;jm;j++ifm%j==0printf%dj;printf\n;}}}
5.10有一分数序列 求出这个数列的前20项之和main{inti=1n;doubletx=1y=2ssum=0;scanf%ldn;whilei=n{s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;}printf%f\nsum;}
5.11一球从100米高度自由下落,每次落地后返回原高度的一半,再落下求它在第10次落地时共经过多少米?第10次反弹多高? main{intin;doubleh=100s=100;scanf%dn;fori=1;i=n;i++{h*=
0.5;ifi==1continue;s=2*h+s;}printfh=%fs=%f\nhs;}
5.12猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃一个以后每天早上都吃了前一天剩下的一半零一个到第10天早上想再吃时,见只剩下一个桃子了求第一天共摘多少桃子main{inti=1sum=0;for;i=10;sum=2*sum+1i++;printfsum=%d\nsum;}
5.13用迭代法求x=根号a求平方根的迭代公式为要求前后两次求出的得差的绝对值少于
0.00001#includemath.hmain{floatx0x1a;scanf%fa;x1=a/2;do{x0=x1;x1=x0+a/x0/2;}whilefabsx0-x1=
0.00001;printf%.3f\nx1;}
5.14用牛顿迭代法求方程在
1.5附近的根main{doublexy;x=
1.5;do{y=2*x*x*x-4*x*x+3*x-6;x=x-y/6*x*x-8*x+3;}whiley!=0;printfx=%.3f\nx;}
5.15用二分法求方程在-10,10之间的根main{doublex1x2y1y2;x1=-10;x2=10;do{y1=2*x1*x1*x1-4*x1*x1+3*x1-6;x1=x1-y1/6*x1*x1-8*x1+3;}whiley1!=0;do{y2=2*x2*x2*x2-4*x2*x2+3*x2-6;x2=x2-y2/6*x2*x2-8*x2+3;}whiley2!=0;printfx1=%.3fx2=%.3f\nx1x2;}
5.16打印以下图案*************************#includemath.hmain{intijk;fori=0;i=3;i++{forj=0;j=2-i;j++printf;fork=0;k=2*i;k++printf*;printf\n;}fori=0;i=2;i++{forj=0;j=i;j++printf;fork=0;k=4-2*i;k++printf*;printf\n;}}。