C+语言程序设计第十讲_第1页
C+语言程序设计第十讲_第2页
C+语言程序设计第十讲_第3页
C+语言程序设计第十讲_第4页
C+语言程序设计第十讲_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

例1:输入两个正整数a和n,求a+aa+aaa+aaaa+aaaa(n个a)之和。例如,输入2和3,则求2+22+222=246。,输入a和n,fori=0ton-1,sum+=t,输出sum,t=0,t=t*10+a,#includevoidmain()intsum,a,n,i,t;coutan;t=0;sum=0;for(i=0;in;i+)t=t*10+a;sum+=t;coutsum=sumn;sum=0;t=0;for(i=0;in;i+)t=t+a*pow(10,i);sum+=t;coutsum=sumn;jc=1;s=1;for(i=1;i=n;i+)jc=jc*i;s+=1.0/jc;couts=setiosflags(ios:fixed)setprecision(3)sendl;,输入n,fori=1ton,s+=1.0/jc,输出s,jc=1,jc=jc*i,s=1,例2:输入一个正整数n,计算的值。,输入n,fori=1ton,s+=1.0/jc,输出s,jc=1,s=1,jc=jc*j,forj=1toi,?,?,?,#includevoidmain()intn,i,j;floatjc,s;printf(Inputn:);scanf(%d,#includevoidmain()inti,b,s,g;for(i=100;i1000;i+)b=i/100;s=i/10%10;g=i%10;if(b*b*b+s*s*s+g*g*g=i)couti;,例3:打印出所有的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。,fori=100to999,s=i/10%10,b=i/100,g=i%10,b3+s3+g3=i,T,输出i,F,153370371407,例3:打印出所有的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。,forb=1to9,n=100*b+10*s+g,b3+s3+g3=n,T,输出n,F,#includevoidmain()intn,b,s,g;for(b=1;b=9;b+)for(s=0;s=9;s+)for(g=0;g=9;g+)n=100*b+10*s+g;if(b*b*b+s*s*s+g*g*g=n)coutnx;while(x0)an=x;n+;cinx;for(i=0;in;i+)if(ai%10!=0)coutai;count+;cout个数是:x;,输入x,n=0,count+,fori=0ton-1,ai%10!=0,T,输出ai,F,x0,an=x,count=0,n+,输入x,输出count,例5:用公式/41-1/3+1/5-1/7+求的近似值,直到最后一项的绝对值小于10-6为止。,#includevoidmain()floats=0,t;intn=1,f=1;t=1.0/n;while(t=1e-6)s+=f*t;f=-f;n+=2;t=1.0/n;coutPI=4*s=1e-6);,do,例6:输入两个正整数m和n,输出m和n之间的所有素数,每行输出5个。,fori=mton,forj=2toi-1,count=0,leap=1,i%j=0,T,leap=0,F,leap=1,T,输出i,F,count+,1不是素数,习题,例7:编写程序找出1000以内的所有完数。一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是完数。,例8:输入一个正整数n和任意数x,计算s的值。,例9:将一笔钱换算成1分、2分和5分的硬币组合。输入金额,问有几种换算方法?针对每一种换算方法,输出各种面值的硬币数量,要求每种硬币至少有一枚。,例10:打印出菱形图案,要求用循环嵌套实现,其中n的值(边长)从键盘输入。,*,习题,输入n,di=0,fori=1ton-1,adiai,T,xi=i,F,例1:从任意n个数构成的数列中找出最大的数和最小的数,将最大的数和最后一个数互换,最小的数和第一个数互换。,fori=0ton-1,输出ai,axia0,adian-1,输入x,n=0,fori=0ton-1,ai=ave,T,count+,F,x0,an=x,ave=0,例2:从键盘输入任意一个大于0的实数,存入一个数组中,统计并输出其中大于等于平均值的实数个数。,输出count,ave/=n,n+,输入x,fori=0ton-1,ave+=ai,count=0,#includevoidmain()floata100,x,ave;inti,n,count;n=0;ave=0;cinx;while(x0)an=x;ave+=an;n+;cinx;ave/=n;,count=0;for(i=0;iave)count+;coutcountendl;,例3:找出1100之间能被7或11整除的所有整数,将这些整数放在数组中然后输出,要求一行输出10个数。,fori=1to100,n=0,i%7=0|i%11=0,T,an=i,F,n+,fori=0ton-1,输出ai,(i+1)%10=0,T,换行,F,#includevoidmain()inta100,n,i;n=0;for(i=1;i=100;i+)if(i%7=0|i%11=0)an=i;n+;for(i=0;in;i+)coutai;if(i+1)%10=0)coutx;while(x!=0)an=x;n+;cinx;ciny;for(i=0;in;i+)if(ai=y)break;if(in)coutyes:iendl;elsecoutx;while(x!=0)an=x;n+;cinx;ciny;for(i=0;in;i+)if(ai=y)for(j=i+1;jn;j+)aj-1=aj;n-;i-;for(i=0;in;i+)coutaix,所以向左找,令high=mid-1=4,(2)low=0;high=4;mid=(0+4)/2=2,因为amidx,所以向右找,令low=mid+1=3,(3)low=3;high=4;mid=(3+4)/2=3,因为amid=x,查找成功,所查元素的下标为mid,0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,10,(1)low=0;high=10;mid=(0+10)/2=5,因为amidhigh,查找失败,0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,10,0,1,2,3,4,5,6,7,8,9,10,#includevoidmain()inta100,i,n,x,low,high,mid;cinn;for(i=0;iai;cinx;low=0;high=n-1;while(low=high)mid=(low+high)/2;if(x=amid)break;elseif(xamid)high=mid-1;elselow=mid+1;if(x=amid)coutYES:mid;elsecoutn;for(i=0;iai;for(i=0;in-1;i+)di=i;for(j=i+1;jn;j+)if(adiaj)di=j;if(i!=di)temp=ai;ai=adi;adi=temp;for(i=0;i=n-1;i+)coutain;for(i=0;iai;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(aiaj)temp=ai;ai=aj;aj=temp;for(i=0;i=n-1;i+)coutain;a1=1;a2=1;for(i=3;i=n;i+)ai=ai-1+ai-2;for(i=1;i=n;i+)coutai;,举例,输入n,fori=3ton,ai=ai-1+ai-2,fori=1ton,输出ai,a1=1a2=1,费波纳契数列,一般而言,兔子在出生两个月后就有了繁殖能力。一对兔子每个月能生出一对小兔子,如果所有兔子都不死,那么一年后可以繁殖多少对兔子?费波纳契数列指的是这样一个数列:1、1、2、3、5、8、13、21、这个数列从第三项开始,每一项都等于前两项之和。,1349852352467621,a0,a1,a2,a3,0123,a00a01a02a03a10a11a12a13a20a21a22a23a30a31a32a33,二维数组的基本概念,类型名数组名常量1常量2;,例如:,inta34;,整型二维数组,名字为a,3行,a0,a0,存储结构,逻辑结构,a00,数组a,数组的定义,4列,共12个元素,a0,a0,a10,a11,a12,a13,a20,a21,a22,a23,是一个矩阵或一张表格,第0行,第1行,第2行,第0列,第1列,第2列,第3列,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,按行存储,a0,a1,a2,0,1,2,3,一维数组个数,一维数组中元素的个数,分行初始化,例inta23=1,2,4;,例inta3=1,2,4;,部分初始化,行长度可以省略,例inta23=1,2,3,4,5,6;,1,2,3,4,5,6,全部初始化,1,2,0,4,0,0,按存储顺序初始化,例inta23=1,2,4;,例inta23=1,2,3,4,5,6;,全部初始化,部分初始化,例inta3=1,2,3,4,5;,行长度可以省略,1,2,3,4,5,6,1,2,4,0,0,0,1,2,3,4,5,0,1097,4683,12335,二维数组的输入和输出,例1:将一个34矩阵输入到数组中并按行输出。,#includestdio.hvoidmain()inta34,i,j;for(i=0;i3;i+)for(j=0;j4;j+)scanf(%d,矩阵的第一行:,for(j=0;j3;j+)couta0j;,矩阵a33,for(i=0;i3;i+)coutai1;,for(k=0;k3;k+)coutakk;,for(k=0;k3;k+)coutak2-k;,矩阵的第二列:,矩阵的

温馨提示

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

评论

0/150

提交评论