C语言程序设计教程习题讲解2概论.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计教程习题讲解2概论

P63/例24 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1*1*1+5*5*5+3*3*3。 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 2.程序源代码: main() { int i,j,k,n; printf(water flowernumber is:);  for(n=100;n1000;n++)  {   i=n/100;/*分解出百位*/   j=n/10%10;/*分解出十位*/   k=n%10;/*分解出个位*/   if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)    {    printf(%d ,n);    }  } };P63/例25 求s=1!+2!+3!+…+n! , 其中n小于30。 #include “stdio.h” main() { long s, t; int i, n; printf(input n:); scanf(%d, n); s=0; t=1; for(i=1; i=n; i++) { t=t*i; s+=t; } printf(1!+2!+3!+…+%d!=%ld\n, n, s); } ;P66/例26 把100以内的能被7整除的数输出 main() { int n,i=0; for(n=1;n=100;n++) { if(n%7!=0) continue; i=i+1; printf(“%5d”,n); if(i%4==0) printf(“\n”); } };P67/例27 求最大公约数和最小公倍数 思路:若已知整数X和Y的最大公约数是K,则它们的最小公倍数是x*y/k。 求解最大公约数有两种方法: (1)辗转相除法 两个数相除,若余数为0,则除数就是这两个数的最大公约数;若余数不为0,则以 除数作为新的被除数,以余数作为新的除数,继续相除,直到余数为0,除数就是最 大公约数。 main( ) { int p,r,n,m,temp; printf(“请输入两个整数n,m:”); scanf(“%d,%d”,n,m); if (nm) {temp=n;n=m;m=temp;} p=n*m; while (m!=0) {r=n%m;n=m;m=r;} printf(“最大公约数是%d”,n); printf(“最小公倍数是%d”,p/n); };相减法 两个数中从大数中减去小数,所得的差若与小数相等,则该数为最大公约数;若不等,对所得的差和小数,继续从大数中减去小数,直到两个数相等为止。 main( ) { int x,y,a,b,t; scanf(“%d,%d”,x,y); a=x;b=y; while (a!=b) if (ab) a=a-b; else b=b-a; printf(”%d,%d”,a,x*y/a); } ;判断101-200之间有多少个素数,并输出所有素数。 1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。       2.程序源代码: #include math.h“ #include “stdio.h” main() {  int m,i,k,h=0,leap=1;  printf(\n);  for(m=101;m=200;m++)   { k=sqrt(m+1);    for(i=2;i=k;i++)      if(m%i==0)       {leap=0;break;}    if(leap) {printf(%4d,m); h++;     if(h%10==0)   printf(\n);     }    leap=1;   }  printf(\nThe total is %d,h); };将1元钱兑换成1分、2分、5分的硬币,若每种面值的硬币都不得少于一个,问有几种不同的兑换方法? #include “stdio.h” main() { int i, j, n=0; for(i=1; i20; i++) for(j=1; j50; j++) if (100-5*i-2*j

文档评论(0)

骨干 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档