C语言模板程序新手必看知识讲解Word文档下载推荐.docx
《C语言模板程序新手必看知识讲解Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言模板程序新手必看知识讲解Word文档下载推荐.docx(44页珍藏版)》请在冰豆网上搜索。
![C语言模板程序新手必看知识讲解Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/10/4a5ba638-6748-484b-986c-24b27806d409/4a5ba638-6748-484b-986c-24b27806d4091.gif)
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)
returnm;
调用函数
intgcd(intm,intn);
gcd(intm,intn);
方法二:
更相减损法
两个数,用较大的数减去较小的数,所得差与较小的数记为新的两个数,再重复之前的过程,直到两个数相等,这时这两个数就是最大公约数。
intm,n;
while(m!
=n)
if(m>
n)m-=n;
elsen-=m;
gcd(m,n));
2
求两个数最小公倍数
两个数,从较大的数开始,依次找能同时整除这两个数的整数,这个整数就是这两个数的最小公倍数。
intm,n,i;
for(i=(m>
n?
m:
;
i++)
if(i%m==0&
&
i%n==0)
leasecommonmultipleis%d"
i);
break;
intlcm(intm,intn)
inti;
returni;
intlcm(intm,intn);
lcm(m,n));
3
判断素数
从2开始到所求整数的开方依次求余,如果有能整除所求整数的整数,则所求整数为合数,反之为素数。
math.h>
intnum;
inti,k,flag=1;
%d"
num);
k=sqrt(num);
for(i=2;
i<
=k;
if(num%i==0)printf("
%disn'
taprimenumber!
"
num);
flag=0;
if(flag)printf("
%disaprimenumber!
intsushu(intnum)
inti,k;
if(num%i==0)return0;
return1;
intsushu(intnum);
if(sushu(num)==0)printf("
elseprintf("
4
冒泡排序(升序)
N个数,每次比较相邻的两个数,如果前面的数大就相互交换,这样小的数就会像气泡一样往前冒。
一趟排序完成后最后一个数最大。
共进行N-1趟排序。
#defineN10
intnum[N];
inti,j;
intt;
for(i=0;
N;
num[i]);
N-1;
for(j=0;
j<
N-1-i;
j++)
if(num[j]>
num[j+1])
{t=num[j];
num[j]=num[j+1];
num[j+1]=t;
%d"
num[i]);
voidmaopao(intnum[N])
voidmaopao(intnum[N]);
maopao(num);
5
选择排序(升序)
N个数,每次从剩下的数中选择最小的数(记住它的下标)与这组数中最前面的数交换,数的个数依次减少。
一趟排序完成后最前面的数最小。
inti,j,k;
k=i;
for(j=i+1;
if(num[k]>
num[j])k=j;
if(k!
=i){t=num[k];
num[k]=num[i];
num[i]=t;
voidxuanze(intnum[N])
voidxuanze(intnum[N]);
xuanze(num);
6
折半查找(升序)
N个按照从小到大排列好顺序的数,再从中寻找一个数,不是依次扫描每个数,而是先把这组数的中间元素拿出来与所找的数比较,如果中间数小于所找的数,则在这组数的后半段寻找;
如果中间数大于所找的数,则在这组数的前半段寻找。
找到了,输出这个数的下标,如果找不到,输出Notfound!
。
inta[N],low=0,high=N-1,mid,i,key,flag=0;
a[i]);
key);
while(low<
=high)
mid=(low+high)/2;
if(a[mid]==key)
Found!
Theindexif%d"
mid);
flag=1;
elseif(a[mid]>
key)high=mid-1;
elselow=mid+1;
if(!
flag)printf("
Notfound!
);
intzheban(inta[N],key)
intlow=0,high=N-1,mid;
returnmid;
return-1;
intzheban(inta[N],key);