文档详情

C语言程序设计第四版第五章答案谭浩强.docx

发布:2017-07-11约3.45千字共4页下载文档
文本预览下载声明
第五章 循环控制 5.3输入两个正整数m和n,求其最大公约数和最小公倍数。 main() {long m,n,i=1,j,s; scanf(%ld,%ld,m,n); for(;i=mi=n;i++) {if(m%i==0n%i==0) s=i;} if(m=n) j=m; else j=n; for(;!(j%m==0j%n==0);j++); printf(s=%ld,j=%ld\n,s,j); } 5.4输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #includestdio.h main() {char c;int i=0,j=0,k=0,l=0; while((c=getchar())!=’\n’) {if(c=65c=90||c=97c=122) i++; else if(c=48c=57) j++; else if(c==32) k++; else l++;} printf(i=%d,j=%d,k=%d,l=%d\n,i,j,k,l); } 5.5求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。 #includemath.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=%d\n,sum); } 5.6求 ,(即求1!+2!+3!+4!+5!+…+20!) main() {int n,i=1;long sum=0,s=1; scanf(%d,n); while(i=n) {s=s*i;sum=sum+s;i++;} printf(sum=%ld\n,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=%f\n,sum); } 5.8打印出所有水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 #includemath.h main() {int x=100,a,b,c; while(x=100x1000) {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一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。编程序找出1000之内的所有完数,并按下面格式输出其因子: 6 its factors are 1、2、3 main() {int m,i,j,s; for(m=6;m10000;m++) {s=1; for(i=2;im;i++) if(m%i==0) s=s+i; if(m-s==0) {printf(%5d its fastors are 1 ,m);for(j=2;jm;j++) if(m%j==0) printf(%d ,j);printf(\n);} } } 或 main() {int m,i,j,s; for(m=6;m1000;m++) {s=m-1; for(i=2;im;i++) if(m%i==0) s=s-i; if(s==0) {printf(%5d its fastors are 1 ,m);for(j=2;jm;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; scanf(%ld,n); while(i=n) {s=y/x;sum=sum+s;t=y;y=y+x;x=t;i++;} printf(%f\n,sum); } 5.11一球从100米高度自由下落,每次落地后返回原高度的一半,再落下。求它在第10次落地时共经过多少米?第10次反弹多高?  main() {int i,n;dou
显示全部
相似文档