C语言程序设计第四版第五章答案谭浩强分享_第1页
C语言程序设计第四版第五章答案谭浩强分享_第2页
C语言程序设计第四版第五章答案谭浩强分享_第3页
C语言程序设计第四版第五章答案谭浩强分享_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档供参考,可复制、编制,期待您的好评与关注! 第五章循环控制 5.3输入两个正整数m和n,求其最大公约数和最小公倍数。 main() long m,n,i=1,j,s; scanf("%ld,%ld",&m,&n); for(;i<=m&&i<=n;i+) if(m%i=0&&n%i=0) s=i; if(m>=n) j=m; else j=n; for(;!(j%m=0&&j%n=0);j+); printf("s=%ld,j=%ldn",s,j); 5.4输入一行字符

2、,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include"stdio.h" main() char c;int i=0,j=0,k=0,l=0; while(c=getchar()!=n) if(c>=65&&c<=90|c>=97&&c<=122) i+; else if(c>=48&&c<=57) j+; else if(c=32) k+; else l+; printf("i=%d,j=%d,k=%d,l=%dn",i,j,k,l); 5.5求Sn=

3、a+aa+aaa+aaaaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。 #include"math.h" main() int n,sum=0,i=1,s=2; scanf("%d",&n); while(i<=n) sum=sum+s;s=s+2*pow(10,i); i+; printf("sum=%dn",sum); 5.6求 ,(即求1!+2!+3!+4!+5!+20!) main() int n,i=1;long sum=0,s=1; scanf(

4、"%d",&n); while(i<=n) s=s*i;sum=sum+s;i+; printf("sum=%ldn",sum); 5.7求 main() double i=1,j=1,k=1,s1=0,s2=0,s3=0,sum; 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; printf("sum=%fn",sum); 5.8打印出所有"水仙花数"

5、;,所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=13+53+33。 #include"math.h" main() int x=100,a,b,c; while(x>=100&&x<1000) a=0.01*x;b=10*(0.01*x-a);c=x-100*a-10*b; if(x=(pow(a,3)+pow(b,3)+pow(c,3) printf("%5d",x);x+; 5.9一个数如果恰好等于它的因子之和,这个数就称为"完数&quo

6、t;。例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。编程序找出1000之内的所有完数,并按下面格式输出其因子: 6itsfactorsare1、2、3 main() int m,i,j,s; for(m=6;m<10000;m+) s=1; for(i=2;i<m;i+) if(m%i=0) s=s+i; if(m-s=0) printf("%5d its fastors are 1 ",m);for(j=2;j<m;j+) if(m%j=0) printf("%d ",j);printf(&quo

7、t;n"); 或 main() int m,i,j,s; for(m=6;m<1000;m+) s=m-1; for(i=2;i<m;i+) if(m%i=0) s=s-i; if(s=0) printf("%5d its fastors are 1 ",m);for(j=2;j<m;j+) if(m%j=0) printf("%d ",j);printf("n"); 5.10有一分数序列: 求出这个数列的前20项之和。 main() int i=1,n;double t,x=1,y=2,s,sum=0;

8、scanf("%ld",&n); while(i<=n) s=y/x;sum=sum+s;t=y;y=y+x;x=t;i+; printf("%fn",sum); 5.11一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高? main() int i,n;double h=100,s=100; scanf("%d",&n); for(i=1;i<=n;i+) h*=0.5;if(i=1) continue;s=2*h+s; printf(&qu

9、ot;h=%f,s=%fn",h,s); 5.12猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。 main() int i=1,sum=0; for(;i<=10;sum=2*sum+1,i+); printf("sum=%dn",sum); 5.13用迭代法求x=根号a。求平方根的迭代公式为: 要求前后两次求出的得差的绝对值少于0.00001。 #include"

10、math.h" main() float x0,x1,a; scanf("%f",&a); x1=a/2; do x0=x1;x1=(x0+a/x0)/2; while(fabs(x0-x1)>=0.00001); printf("%.3fn",x1); 5.14 用牛顿迭代法求方程在1.5附近的根。 main() double x,y;x=1.5; doy=2*x*x*x-4*x*x+3*x-6; x=x-y/(6*x*x-8*x+3); while(y!=0); printf("x=%.3fn",x); 5

11、.15用二分法求方程在(-10,10)之间的根 main() double x1,x2,y1,y2;x1=-10;x2=10; doy1=2*x1*x1*x1-4*x1*x1+3*x1-6; x1=x1-y1/(6*x1*x1-8*x1+3); while(y1!=0); do y2=2*x2*x2*x2-4*x2*x2+3*x2-6; x2=x2-y2/(6*x2*x2-8*x2+3); while(y2!=0); printf("x1=%.3f,x2=%.3fn",x1,x2); 5.16打印以下图案 * * * * * * * * * * * * * * * * * * * * * * * * * #include"math.h" main() int i,j,k; for(i=0;i<=3;i+) for(j=0;j<=2-i;j+) printf(" "); for(k=0;k<=2*i;k+) pri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论