C+语言程序设计第十讲

上传人:max****ui 文档编号:23915225 上传时间:2021-06-13 格式:PPT 页数:40 大小:1.13MB
收藏 版权申诉 举报 下载
C+语言程序设计第十讲_第1页
第1页 / 共40页
C+语言程序设计第十讲_第2页
第2页 / 共40页
C+语言程序设计第十讲_第3页
第3页 / 共40页
资源描述:

《C+语言程序设计第十讲》由会员分享,可在线阅读,更多相关《C+语言程序设计第十讲(40页珍藏版)》请在装配图网上搜索。

1、例1:输入两个正整数a和n,求a+aa+aaa+aaaa+aaaa(n个a)之和。例如,输入2和3,则求2+22+222=246。输入a和n for i=0 to n-1sum+=t输出sumt=0t=t*10+a #include void main( ) int sum, a, n, i, t;coutan; t=0;sum=0;for(i=0; in; i+) t=t*10+a;sum+=t; coutsum=sumendl;sum=0 例1:输入两个正整数a和n,求a+aa+aaa+aaaa+aaaa(n个a)之和。例如,输入2和3,则求2+22+222=246。#include #i

2、nclude void main( ) int sum, a, n, i, t;coutan;sum=0;t=0;for(i=0; in; i+) t=t+a*pow(10,i);sum+=t; coutsum=sumendl;输入a和n for i=0 to n-1sum+=t输出sumt=0t=t*10+asum=0t+=a*pow(10,i) 例2:输入一个正整数n,计算 的值。1 1 1 1s= 1+ + + + +1! 2! 3! n!#include #include void main() int n,i; float jc, s; coutn; jc=1; s=1; for(i

3、=1;i=n;i+) jc=jc*i;s+=1.0/jc; couts=setiosflags(ios:fixed) setprecision(3)sendl;输入n for i=1 to ns+=1.0/jc输出sjc=1jc=jc*is=1 例2:输入一个正整数n,计算 的值。1 1 1 1s= 1+ + + + +1! 2! 3! n!输入n for i=1 to ns+=1.0/jc输出sjc=1s=1jc=jc*j for j=1 to i? #include void main( ) int n, i, j;float jc, s;printf(Input n:);scanf(%d

4、, s=1;for(i=1; i=n; i+) jc=1;for(j=1; j=i; j+)jc=jc*j;s+=1.0/jc; printf(s=%.3fn, s); #include void main( ) int i, 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位数,其各位数字的立方和等于该数本身。 for i=100 to 999s=i/10%10b=i/100g=i%10b 3+s3+g3=iT输出i F

5、例3:打印出所有的水仙花数。所谓水仙花数是指一个3位数,其各位数字的立方和等于该数本身。 for b=1 to 9n=100*b+10*s+gb 3+s3+g3=nT输出n F #include void main( ) int n, 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) coutn ;for s=0 to 9 for g=0 to 9 例4:输入若干个正整数,以0或负数结束,将其中个位不为0的数输出,并统计满足条件的数据个数。

6、#include void main( ) int a100, x, n=0, count=0, i;cinx;while(x0) an=x; n+;cinx; for(i=0; in; i+)if(ai%10!=0) coutai ;count+; cout个 数 是 : x;输入x n=0 count+ for i=0 to n-1ai%10!=0T输出ai F x0an=xcount=0n+输入x输出count 例5:用公式/41-1/3+1/5-1/7+求的近似值,直到最后一项的绝对值小于10-6为止。#include void main( ) float s=0, t;int n=1

7、, f=1;t=1.0/n;while(t=1e-6) s+=f*t;f=-f;n+=2;t=1.0/n; coutPI=4*s=10-6f=-f输出4*st=1.0/ns+=f*tn=1 f=1n+=2t=1.0/n while(t=1e-6);do 例6:输入两个正整数m和n,输出m和n之间的所有素数,每行输出5个。 for i=m to nfor j=2 to i-1count=0leap=1 i%j=0Tleap=0 Fleap=1T输出i F count+ 1不是素数 例7:编写程序找出1000以内的所有完数。一个数恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、

8、3,而6=1+2+3,因此6是完数。例8:输入一个正整数n和任意数x,计算s的值。2 3 nn+1x x xs=1+x- + - +(-1)2! 3! n!例9:将一笔钱换算成1分、2分和5分的硬币组合。输入金额,问有几种换算方法?针对每一种换算方法,输出各种面值的硬币数量,要求每种硬币至少有一枚。 例10:打印出菱形图案,要求用循环嵌套实现,其中n的值(边长)从键盘输入。 * * * * * * 输入n di=0 for i=1 to n-1adiaiT xi=i F for i=0 to n-1输出aiaxia0adian-1 输入xn=0 for i=0 to n-1ai=aveTcou

9、nt+ F x0an=xave=0输出countave/=nn+输入x for i=0 to n-1ave+=aicount=0 #include void main() float a100, x, ave;int i, 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; for i=1 to 100n=0i%7=0|i%11=0Tan=i Fn+ for i=0 to n-1 输出ai(i+1)%10=0T换行F #include

10、void main( ) int a100, 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) coutendl; 输入xn=0 for i=0 to n-1ai=yTbreak F x!=0an=x输入yn+输入x inT在F输出i不在 #include void main( ) int a100, n=0, i, x, y;cinx;while(x!=0) an=x;n+;cinx;ciny;for(i=0; in; i+)if(ai=y)break;if(

11、in)coutyes:iendl; else coutno; 输入y for i=0 to n-1ai=kTfor j=i+1 to n-1 F for i=0 to n-1 输出ai输入一组非0整数 aj-1=ajn-i- #include void main( ) int a100, n=0, i, j, x, y;cinx;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+)coutai ; #include void main(

12、) int a100, 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;else if(xamid) high=mid-1;else low=mid+1;if(x=amid)coutYES:mid; else coutNO; 例:将任意n个数由大到小排序。#include void main( ) int a100, i, j, n, di, temp; cinn; for(i=0; iai; for(i=0; in

13、-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+)coutai ; 选 择 排 序 法 #include void main( ) int a100, i, j, n, temp; cinn; 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+)coutai ; 相邻两数比较,大数 小数

14、 a1 a2 a3 a4 a5 j=1 to 4 j=1 to 3 j=1 to 2 j=1 to 1由 小 到 大 排 序 #include void main( ) int a100, n, i, j, temp; scanf(%d, for(i=1; i=n; i+)scanf(%d, for(i=1; in; i+)for(j=1; jaj+1) temp=aj;aj=aj+1;aj+1=temp; for(i=1; i=n; i+) printf(%5d, ai); #include void main( ) int a100, sum, i, n;cinn;a1=1;a2=1;fo

15、r(i=3; i=n; i+)ai=ai-1+ai-2;for(i=1; i=n; i+)coutai ;输入n for i=3 to nai=ai-1+ai-2 for i=1 to n输出aia1=1 a2=1 类型名 数组名常量1 常量2;例如:int a34;整型二维数组名字为a a00数 组 a共12个元素0 1 2 3 0 1 2 3是一个矩阵或一张表格第0行第1行第2行第0列第1列第2列第3列a01a02a03a10a11a12a13 a20a21a22a230 1 2 3一维数组个数一维数组中元素的个数 例 例 1 0 9 7 4 6 8 312 3 3 5例1:将一个34矩阵

16、输入到数组中并按行输出。#include stdio.hvoid main( ) int a34, i, j; for( i=0; i3; i+) for(j=0; j4; j+) scanf(%d, for(i=0; i3; i+) for(j=0; j4; j+) printf(%3d,aij); printf(n); 例2:将二维数组行列元素互换,存到另一个数组中#include #include void main( ) int a5050, b5050; int m, n, i, j; cinmn; for(i=0; im; i+) for(j=0; jaij; for(i=0; in; i+) for(j=0; jm; j+)bij=aji; for(i=0; in; i+) for(j=0; jm; j+) coutsetw(3)bij; coutendl; 一维数组:实验指导书P132 69题 二维数组:实验指导书P132 1013题

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!