C语言模板程序新手必看Word文件下载.docx

上传人:b****1 文档编号:1131406 上传时间:2023-04-30 格式:DOCX 页数:42 大小:18.87KB
下载 相关 举报
C语言模板程序新手必看Word文件下载.docx_第1页
第1页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第2页
第2页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第3页
第3页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第4页
第4页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第5页
第5页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第6页
第6页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第7页
第7页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第8页
第8页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第9页
第9页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第10页
第10页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第11页
第11页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第12页
第12页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第13页
第13页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第14页
第14页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第15页
第15页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第16页
第16页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第17页
第17页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第18页
第18页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第19页
第19页 / 共42页
C语言模板程序新手必看Word文件下载.docx_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言模板程序新手必看Word文件下载.docx

《C语言模板程序新手必看Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言模板程序新手必看Word文件下载.docx(42页珍藏版)》请在冰点文库上搜索。

C语言模板程序新手必看Word文件下载.docx

封装函数

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;

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);

zheban(a,key);

7

找最大数

(1)两个数找最大

比较两个数,输出较大者。

intx,y,z;

x,&

y);

z=x>

y?

x:

y;

z);

intmax(intx,inty)

intz;

returnz;

intmax(intx,inty);

max(x,y));

(2)数组中找最大

①一维数组

让一个变量等于数组中第一个元素,从第二数开始依次进行比较,碰到更大的数则更改变量的值,直到全部比较完毕。

inti,max;

max=num[0];

for(i=1;

if(max<

num[i])max=num[i];

max);

intmax(intnum[N])

intmax=num[0];

returnmax;

intmax(intnum[N]);

max(num));

②二维数组

让一个变量等于数组中第一个元素,从第一个数开始依次进行比较,碰到更大的数则更改变量的值,直到全部比较完毕。

#defineM5

intnum[N][M];

intmax;

M;

num[i][j]);

max=num[0][0];

max);

intmax(intnum[N][M])

intmax=num[0][0];

intmax(intnum[N][M]);

8

数组的行列转置

交换对应行列和列行的元素,注意只交换一半即可,否则相当于没有交换。

#defineN5

inta[N][N];

inti,j,t;

a[i][j]);

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

a[i][j]);

\n"

voidzhuanzhi(inta[][N])

voidzhuanzhi(inta[][N]);

zhuanzhi(a);

9

大整数

(1)大整数的输入

用字符类型输入。

string.h>

charch[101];

%s"

ch);

//或gets(ch);

voidInput_Big_Num(charch[101])

voidInput_Big_Num(charch[101]);

Input_Big_Num(ch);

(2)大整数的处理

①将大整数个位到最高位放在下标从0开始的整形数

intdata[100];

intlen,i;

len=strlen(ch);

len;

data[i]=ch[len-i-1]-'

0'

intChuli_Big_Num(charch[101],intdata[100])

data[i]=ch1[len-i-1]-'

returnlen-1;

charch[101]={'

\0'

};

intdata[100]={0};

intChuli_Big_Num(charch[101],intdata[100]);

Chuli_Big_Num(ch,data);

②将大整数最高位到个位放在下标从0开始的整形数

data[i]=ch[i]-'

intChuli2_Big_Num(charch[101],intdata[100])

data[i]=ch1[i]-'

intChuli2_Big_Num(charch[101],intdata[100]);

(3)大整数的输出

for(i=len-1;

i>

=0;

i--)

data[i]);

voidOutput_Big_Num(intdata[100],intweishu)

for(i=weishu-1;

intweishu;

voidOutput_Big_Num(intdata[100],intweishu);

weishu=Chuli_Big_Num(ch,data);

Output_Big_Num(data,weishu);

(4)大整数的加法(两个大整数相加)

charch1[101]={'

},ch2[101]={'

intdata1[100]={0},data2[100]={0},data3[101]={0};

intlen1,len2,len,i,jinwei=0;

ch1);

//或gets(ch1);

ch2);

//或gets(ch2);

len1=strlen(ch1);

len1;

data1[i]=ch1[len-i-1]-'

len2=strlen(ch2);

len2;

data2[i]=ch2[len-i-1]-'

100;

data3[i]=data1[i]+data2[i]+jinwei;

jinwei=data3[i]/10;

data3[i]=data3[i]%10;

for(i=100;

if(data3[i]!

=0)

len=i;

for(i=len;

data3[i]);

intPlus_Big_Num(intdata1[100],intdata2[100],intdata3[101])

inti,jinwei=0;

data3[

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2