C语言模板程序新手必看.docx
- 文档编号:3072158
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:13
- 大小:17.32KB
C语言模板程序新手必看.docx
《C语言模板程序新手必看.docx》由会员分享,可在线阅读,更多相关《C语言模板程序新手必看.docx(13页珍藏版)》请在冰豆网上搜索。
C语言模板程序新手必看
C语言模板程序
1
求两个数最大公约数
方法一:
辗转相除法
思路:
两个数,用较大的数除以较小的数,所得余数与较小的数记为新的两个数,再重复之前的过程,直到余数为0,这时较大的数就是最大公约数。
完整程序
#include<>intmain(){intm,n,r;scanf("%d,%d",&m,&n);do{r=m%n;m=n;n=r;}while(n);printf("greatestcommondivisoris%d\n",m);return0;}
封装函数
intgcd(intm,intn){do{r=m%n;m=n;n=r;}while(n);returnm;}
调用函数
#include<>intmain(){intm,n,r;intgcd(intm,intn);scanf("%d,%d",&m,&n);gcd(intm,intn);printf("greatestcommondivisoris%d\n",m);return0;}
方法二:
更相减损法
思路:
两个数,用较大的数减去较小的数,所得差与较小的数记为新的两个数,再重复之前的过程,直到两个数相等,这时这两个数就是最大公约数。
完整程序
#include<>intmain(){intm,n;scanf("%d,%d",&m,&n);while(m!
=n){if(m>n)m-=n;elsen-=m;}printf("greatestcommondivisoris%d\n",m);return0;}
封装函数
intgcd(intm,intn){while(m!
=n){if(m>n)m-=n;elsen-=m;}returnm;}
调用函数
#include<>intmain(){intm,n,r;intgcd(intm,intn);scanf("%d,%d",&m,&n);printf("greatestcommondivisoris%d\n",gcd(m,n));return0;}
2
求两个数最小公倍数
思路:
两个数,从较大的数开始,依次找能同时整除这两个数的整数,这个整数就是这两个数的最小公倍数。
完整程序
#include<>intmain(){intm,n,i;scanf("%d,%d",&m,&n);for(i=(m>nm:
n);;i++)if(i%m==0&&i%n==0){printf("leasecommonmultipleis%d",i);break;}return0;}
封装函数
intlcm(intm,intn){inti;for(i=(m>nm:
n);;i++)if(i%m==0&&i%n==0)returni;}
调用函数
#include<>intmain(){intm,n,i;intlcm(intm,intn);scanf("%d,%d",&m,&n);printf("leasecommonmultipleis%d",lcm(m,n));return0;}
3
判断素数
思路:
从2开始到所求整数的开方依次求余,如果有能整除所求整数的整数,则所求整数为合数,反之为素数。
完整程序
#include<>#include<>intmain(){intnum;inti,k,flag=1;scanf("%d",&num);k=sqrt(num);for(i=2;i<=k;i++){if(num%i==0)printf("%disn'taprimenumber!
",num);flag=0;}if(flag)printf("%disaprimenumber!
",num);return0;}
封装函数
intsushu(intnum){inti,k;k=sqrt(num);for(i=2;i<=k;i++){if(num%i==0)return0;}return1;}
调用函数
#include<>#include<>intmain(){intnum;intsushu(intnum);scanf("%d",&num);if(sushu(num)==0)printf("%disn'taprimenumber!
",num);elseprintf("%disaprimenumber!
",num);return0;}
4
冒泡排序(升序)
思路:
N个数,每次比较相邻的两个数,如果前面的数大就相互交换,这样小的数就会像气泡一样往前冒。
一趟排序完成后最后一个数最大。
共进行N-1趟排序。
完整程序
#include<>#defineN10intmain(){intnum[N];inti,j;intt;for(i=0;i 封装函数 voidmaopao(intnum[N]){inti,j;intt;for(i=0;i 调用函数 #include<>#defineN10intmain(){intnum[N];inti,j;intt;voidmaopao(intnum[N]);for(i=0;i 5 选择排序(升序) 思路: N个数,每次从剩下的数中选择最小的数(记住它的下标)与这组数中最前面的数交换,数的个数依次减少。 一趟排序完成后最前面的数最小。 共进行N-1趟排序。 完整程序 #include<>#defineN10intmain(){intnum[N];inti,j,k;intt;for(i=0;i =i){t=num[k];num[k]=num[i];num[i]=t;}}for(i=0;i 封装函数 voidxuanze(intnum[N]){inti,j,k;intt;for(i=0;i =i){t=num[k];num[k]=num[i];num[i]=t;}}} 调用函数 #include<>#defineN10intmain(){intnum[N];inti,j,k;intt;voidxuanze(intnum[N]);for(i=0;i 6 折半查找(升序) 思路: N个按照从小到大排列好顺序的数,再从中寻找一个数,不是依次扫描每个数,而是先把这组数的中间元素拿出来与所找的数比较,如果中间数小于所找的数,则在这组数的后半段寻找;如果中间数大于所找的数,则在这组数的前半段寻找。 找到了,输出这个数的下标,如果找不到,输出Notfound! 。 完整程序 #include<>#defineN10intmain(){inta[N],low=0,high=N-1,mid,i,key,flag=0;for(i=0;i Theindexif%d",mid);flag=1;break;}elseif(a[mid]>key)high=mid-1;elselow=mid+1;}if(! flag)printf("Notfound! ");return0;} 封装函数 intzheban(inta[N],key){intlow=0,high=N-1,mid;while(low<=high){mid=(low+high)/2;if(a[mid]==key){printf("Found! Theindexif%d",mid);returnmid;}elseif(a[mid]>key)high=mid-1;elselow=mid+1;}printf("Notfound! ");return-1;} 调用函数 #include<>#defineN10intmain(){inta[N],low=0,high=N-1,mid,i,key,flag=0;intzheban(inta[N],key);for(i=0;i 7 找最大数 (1)两个数找最大 思路: 比较两个数,输出较大者。 完整程序 #include<>intmain(){intx,y,z;scanf("%d,%d",&x,&y);z=x>yx: y;printf("%d",z);return0;} 封装函数 intmax(intx,inty){intz;z=x>yx: y;returnz;} 调用函数 #include<>intmain(){intx,y,z;intmax(intx,inty);scanf("%d,%d",&x,&y);printf("%d",max(x,y));return0;} (2)数组中找最大 ①一维数组 思路: 让一个变量等于数组中第一个元素,从第二数开始依次进行比较,碰到更大的数则更改变量的值,直到全部比较完毕。 完整程序 #include<>#defineN10intmain(){intnum[N];inti,max;for(i=0;i 封装函数 intmax(intnum
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 模板 程序 新手