网站大量收购独家精品文档,联系QQ:2885784924

C语言程序设计谭浩强第三版课后习题.docx

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章循环语句 6.1输入两个正数,求最大条约数和最小公倍数. intmain( ) { inta,b,num1,num2,temp;printf(请输入两个正整数:\n);scanf(%d,%d,num1,num2);if(num1num2) { temp=num1;num1=num2; num2=temp; }a=num1,b=num2;while(b!=0) {temp=a%b;a=b;b=temp; } printf(它们的最大条约数为:%d\n,a); printf(它们的最小公倍数为:%d\n,num1*num2/a);return0; }我感觉这样不是更简单吗:首先用scanf输入两个整数a,bif(ab)c=a; elsec=b; for(;c0;c--) if((a%c)(b%c)==0) break; printf(最大条约数为%d,c); printf(最大公倍数为%d,a*b/c); 6.2输入一行字符,分别统计出其中英文字母,空格,数字和其余字符的个数解: #includestdio.h intmain( ) { charc; intletters=0,space=0,degit=0,other=0; printf(请输入一行字符:\n); while((c=getchar( ))!=\n) {if(c=ac=z||cAc=Z)letters++;elseif(c==)space++;else if(c=0c=9)digit++;elseother++; } printf(其中:字母数=%d空格数=%d数字数=%d其余字符数 =%d\n,letters,space,digit,other); return0; } 6.3求s(n)=a+aa+aaa++aa??之值,其中a是一个数字,n表示a的位数。解: intmain( ) { inta,n,count=1,sn=0,tn=0; printf(请输入a和n的值:\n);scanf(%d,%d,a,n);printf(a=%dn=%d\n,a,n); while(count=n) { tn=tn+a; sn=sn+tn;a=a*10;++count; } printf(a+aa+aaa+=\n%,dsn);return0; }循环体改成:count=1,sn=0; { sn+=a;a+=10a;count++; } 20 6.4求 n!(即1+2!+3!+4!++20 n2 intmain( ) { floatn,s=0,t=1; for(n=1;n=20;n++) { t=t*n; s=s+t; } printf(1!+2!++20!=%6); return0; } 阶乘利用递归,再求和: #includeiostreamusingnamespacestd; longFunc(intn) {if(1==n)returnn;if(n1) returnn*Func(n-1); }main( ) { longs=0; inti=1; while(i=6) { s=s+Func(i);i++; } coutsendl; 6.5intmain( ) { intk,N1=100,N2=50,N3=10; floats1=0.0,s2=0.0,s3=0.0; for(k=1;k=N1;k++)/*计算1到100的和*/{ s1=s1+k; } for(k=1;k=N2;k++)/*计算1到50各数平方和*/ {s2=s2+k*k; } for(k=1;k=N3;k++)/*计算1到10各数倒数之和*/{ s3=s3+1.0/k; } printf(总和=%8.2f\n,s1+s2+s3);return0; } 已经过 intmain( ) { intk=1,i=11,j=51; floats=0.0;while(k=10) {s=s+k+k*k+1.0/k;while(k==10i=50){s=s+i+i*i;while(i=50j=100) {s=s+j;j++; }i++; }k++; } } 6.6所谓“水仙开数”是指一个3位数,其个位数字立方和等于该数本身。intmain( ) { inti,j,k,n; printf(水仙花数是:); for(n=100;n1000;n++) { i=n/100; j=n/10-i*10; k=n%10; if(i*100+j*10+k==i*i*i+j*j*j+k*k*k) {printf(%d,n); } } printf(n‘); return0; } 6.7一个数如果恰巧等于它的因子之和,这个数就称为“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子。 #includestdio.h #defi

文档评论(0)

139****9559 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档