




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言经典算法汇总百度经验:一冒泡法:排序过程:(1)比较第一个数与第二个数,若为逆序a0a1,则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第n个数比较为止第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上(2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置(3)重复上述过程,共经过n-1趟冒泡排序后,排序结束。例题:#includemain()inta11,i,j,t;printf(Input10numbers:);for(i=1;i11;i+)scanf(%d,&ai);printf();for(j=1;j=9;j+)for(i=1;iai+1)t=ai;ai=ai+1;ai+1=t;printf(Thesortednumbers:);for(i=1;i11;i+)printf(%d,ai);二选择法:排序过程:(1)首先通过n-1次比较,从n个数中找出最小的,将它与第一个数交换第一趟选择排序,结果最小的数被安置在第一个元素位置上(2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换第二趟选择排序(3)重复上述过程,共经过n-1趟排序后,排序结束。例题:传统方法:#includemain()inta11,i,j,k,x;printf(Input10numbers:);for(i=1;i=10;i+)scanf(%d,&ai);printf();for(i=1;i=10;i+)k=i;for(j=i+1;j=10;j+)if(ajak)k=j;if(i!=k)x=ai;ai=ak;ak=x;printf(Thesortednumbers:);for(i=1;i=10;i+)printf(%d,ai);函数法:voidsort(intarray,intn)inti,j,k,t;for(i=0;in-1;i+)k=i;for(j=i+1;jn;j+)if(arrayjarrayk)k=j;if(k!=i)t=arrayi;arrayi=arrayk;arrayk=t;main()inta10,i;for(i=0;i10;i+)scanf(%d,&ai);sort(a,10);/*数组名作函数参数*/for(i=0;i10;i+)printf(%d,ai);printf();三杨辉三角:(二维数组)例题:杨辉三角要求打十行:main()inti,j,a1010;for(i=0;i10;i+)ai0=1;for(i=1;i10;i+)aii=1;for(i=2;i10;i+)for(j=1;ji;j+)aij=ai-1j-1+ai-1j;for(i=0;i10;i+)for(j=0;j=i;j+)printf(“%4d”,aij);printf(“”);四.字符数组:(逆序排列)如:例题:把输入的字符串逆序排列,如输入ABCDE,输出为EDCBA#includemain()charc,str80;inti,j;printf(Enterastring:);scanf(“%s”,str);/*也可以gets(str);puts(str);*/for(i=0,j=strlen(str)-1;ij;i+,j-)c=stri;stri=strj;strj=c;printf(Reversedstring:%s,str);五:水仙花数:例题:打印出所有的水仙花数:main()inti,j,k,n;printf(“水仙花数是:”);for(n=100;n=k+1为真,则说明不存在2之间的因子,所以此整数是素数。例题:求100200之间的全部素数之和#includemain()intsum(intm);intm,s=0;for(m=101;m=200;m=m+2)s=s+sum(m);printf(“s=%d”,s);七递归调用:(求阶乘)例题1:求n的阶乘:#includefloatfac(intn)floatf;if(n0)printf(n0,dataerror!);elseif(n=0|n=1)f=1;elsef=fac(n-1)*n;return(f);main()intn,i;floaty=0;printf(Inputaintegernumber:);scanf(%d,&n);y=fac(n);printf(%d!=%f,n,y);例题2:求1!+2!+n!#includefloatfac(intn)floatf;if(n0)printf(n0,dataerror!);elseif(n=0|n=1)f=1;elsef=fac(n-1)*n;return(f);main()intn,i;floaty=0;printf(Inputaintegernumber:);scanf(%d,&n);for(i=0;i=n;i+)y=y+fac(i);printf(%d!=%f,n,y);八:求二维数组各行元素之和:例题:1.运用传统方法:#includemain()intx54,i,j;for(i=0;i=3;i+)for(j=0;j=2;j+)scanf(%d,&xij);for(i=0;i=2;i+)x4i=0;for(j=0;j=4;j+)xj3=0;for(i=0;i=3;i+)for(j=0;j=2;j+)xi3+=xij;x4j+=xij;x43+=xij;2.运用函数法:voidget_sum_row(intx3,intresult,introw,intcol)inti,j;for(i=0;irow;i+)resulti=0;for(j=0;jcol;j+)resulti+=xij;main()inta23=3,6,9,1,4,7;intsum_row2,row=2,col=3,i;get_sum_row(a,sum_row,row,col);/*数组名a作函数参数*/for(i=0;irow;i+)printf(Thesumofrow%d=%d,i+1,sum_rowi);九Fibonacci
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年专有许可合同2篇
- 城市民屋购房合同4篇
- 理论业务知识培训课件
- 法兰阀门保温工程方案(3篇)
- 球鞋修复培训课件
- 清华苑建设项目环境影响报告表
- 房建工程坡道方案(3篇)
- 低压配线工程方案(3篇)
- 方案落地打造优.质工程(3篇)
- 工程博士发展方案范文(3篇)
- GB/T 37232-2018印刷文件鉴定技术规范
- GB/T 32892-2016光伏发电系统模型及参数测试规程
- 友善-主题班会课件
- 深交所期权测试题库专业考试
- 酒店服务心理学培训教材课件
- 校方责任险课件
- 拟经营的食品种类、存放地点
- 家乡小吃课件
- 集团公司落实子企业董事会职权工作方案
- JJG(建材) 107-1999 透气法比表面积仪检定规程-(高清现行)
- 血栓弹力图-PPT课件
评论
0/150
提交评论