C程序设计经典程序举例

上传人:简****9 文档编号:47669717 上传时间:2021-12-25 格式:DOCX 页数:14 大小:71.97KB
收藏 版权申诉 举报 下载
C程序设计经典程序举例_第1页
第1页 / 共14页
C程序设计经典程序举例_第2页
第2页 / 共14页
C程序设计经典程序举例_第3页
第3页 / 共14页
资源描述:

《C程序设计经典程序举例》由会员分享,可在线阅读,更多相关《C程序设计经典程序举例(14页珍藏版)》请在装配图网上搜索。

1、C程序设计经典程序举例1、判断素数(循环、利用算法减少运算次数)例:1159:质因数分解正整数n是两个不同质数的乘积,试求出其中较大的。#includc #includc int main。long longn,big;int small;scanf(%lkT,&n);f()r(small=2;smallt=(int)sqrt(small);f()r(i=2;i=n)()r4-1 ;i+)if(small%i=O)brcak;if(i=root)if(small=2)small+;else small+=2;只判断2和奇数,减少运算次数 continue;if(n%small=O)big=n/

2、small;rM)t=(int)sqrt(big);fc)r(i=2;i=root+1 ;i+)if(big%i=O)brcak;if(i=r(x)0if(small=2)small+;else small+=2;continue;elsebreak;得到最大质因数,跳出循环)printf(H%dsmall,big);return 0;2、递归与回溯算法(解决尝试性问题,每一级都对下一级有影响)例:1085: 0/1迷宫问题给定一个由0 (表示墙壁)和1 (表示道跆)的迷宫,请你判断进入迷宫后,仅通过横向和 纵向的行走是否能从迷宫中走出来,即能否从坐标(1, 1)走到(n, m) o#incl

3、udc#includcint startistartj;int endi,endj;定义迷宫起止点int succcss=O;用于判断是否成功通蹈int main。int visit(int ijnt j,int maze010);int i,j;int n,m;int mazc1010;scanf(%d”,&mazui j);starti= 1 ,startj= 1 ,cndi=n,cndj=m;i f(visit(s tarti,startj ,mazc)=0)printffNO11);printf(,YESH);return 0;int nsit(int ijnt jjnt mazcl(

4、)安全性判断已经经过的路if(i=cndi&j=ciidj)(succcss=l;成功到达终点进行四个方向的尝试if(succcss!=l &mazui 口+1= 1)visit。,j+1,maze);if(succcss!=l &mazci+ lj=l)visit(i+l,j,mazu);if(succcss!=l &mazei-l 0= 1)i success! =1 &mazu ij-l=l)visit。,j-l,mazu);mazcij=O;尝试失败返回0,尝试成功返回1return success;例:全排列问题输入一个正整数n,按字典序打印其全排列#includcint used1

5、6=0;是否使用判断int result16=0;打印结果void proc(int skp,int n)按步进行数组赋值int i;if(stcpn)for(i=l;i=n;i+)printfC%d -resul明);printffXn);elsef()r(i=l;i=ii;i+)if(uscdi=O)rcsultstcp=i;uscdi=l;proc(stcp+l,n);uscdi=O;回溯)int main。int n;scanf(t,%dl&n);proc(l,n);return 0;例:二分查找#includc int biscarch( int an f, int left, in

6、t right, int num )prinif(Hsearch %d from %d to %dnM,num, left, right);int mid;设置二分点进行比较return -1;未找到需查找的点mid=(lcft+right)/2;if(arymid=num)return mid;else/与二分点进行大小比较后进入递归if(arymidnum) biscarch(ar left, mid-1, num);elseif(arymidnum)biscarch(ar mid+1 ,right,num);int main。int n, array10000, i, num;scanf

7、(H%d &n);scanf(%d,&num);f()r (i=O;in; i + )scanf(M%d,&array0);数组需有序,若无序数组先进行排序printf( ,%dlbiscarch(array,O,n-l ,num);return 0;3、排序问题冒泡排序快排函数4、字符串处理例:判断回文#includc#includc#includcint main。char *s=(char*)malk)c(sizcof(char)*256);char chang256=M0M;guts(s);int lcn=strlcn(s);int i;f()r(i=O;istrlcn(pstrl)&

8、find!=NULL)循环在剩余字符串中能寻找到字符串1时继续进行char changr4()0=H0,t;char *usc=find;find=strstr(find,pstrl);寻找字符串1i=O;i(find-usc);i+)change i=*(usc+i);find=find+s trlcii(pstrl);/直接跳过字符串1strcat(final,changp);将出现字符串1之前的部分粘到最终字符串中stTcat(find,pstr2);粘贴字符串2到悬终字符串if(strsiT(find,psiTl)=NULL)/剩余字符串中搜索不到字符串1break;剩余的不是字符串1,直接粘贴到鼻终字符串中,如果是,亘接返回sircat(final,find);return final;

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