因?yàn)閮蓚€(gè)數(shù)組的長(zhǎng)度是不同的,數(shù)組a的元素個(gè)數(shù)是n,數(shù)組b的元素個(gè)數(shù)是m。for循環(huán)是在兩個(gè)數(shù)組中分別比較元素的大小,指針c指向兩個(gè)數(shù)組中較小的那個(gè)元素。依次朝后比較。當(dāng)其中一個(gè)數(shù)組的元素全部都被遍歷完,則指針c 就直接依次指向另外一個(gè)數(shù)組所有元素,將元素都添加到新數(shù)組中。
我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、香坊ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的香坊網(wǎng)站制作公司
說(shuō)的可能有點(diǎn)羅嗦。
舉個(gè)例子吧
假定 a={1,3,7,}
b={2,4}
按照上面的程序,它的執(zhí)行順序是:
1) 比較a中的第一個(gè)元素和b中的第一個(gè)元素,12,指針指向1
2) 比較a中的第二個(gè)元素和b中的第一個(gè)元素,32,指針指向2
3) 比較a中的第二個(gè)元素和b中的第二個(gè)元素,34, 指針指向3
4) 此時(shí)b中的元素全部都被遍歷完,則跳出for循環(huán),執(zhí)行后面的while語(yǔ)句
5) 因?yàn)閍中的元素還沒(méi)有被遍歷完,則執(zhí)行第一個(gè)while語(yǔ)句,指針依次指向a中的剩余元素,一直到a中的元素都被遍歷完為止。
c最后得到的結(jié)果就是{1,2,3,4,7}
希望說(shuō)明白了,能夠幫到你
并不是說(shuō)類型不匹配,是因?yàn)樵谑褂胢erge之前未定義,把merge放到mergeSor前面,或是在最開始寫上這句:
void
merge(int*,int,int,int);
希望對(duì)你能有所幫助。
完整代碼如下,有任何疑問(wèn)可以追問(wèn)。
#include?stdio.h
#include?stdlib.h
int?merge(char?*in1,char?*in2,char?*out)
{
FILE?*f_in,*f_out;
int?n;
char?buf[4096];
//打開輸出文件
f_out=fopen(out,"wb");
if(!f_out)?return?0;
//打開并讀第一個(gè)文件寫到輸出文件
f_in=fopen(in1,"rb");
if(!f_in)?return?0;
while(n=fread(buf,1,sizeof(buf),f_in))
{
fwrite(buf,1,n,f_out);
}
fclose(f_in);
//打開并讀第二個(gè)文件寫到輸出文件
f_in=fopen(in2,"rb");
if(!f_in)?return?0;
while(n=fread(buf,1,sizeof(buf),f_in))
{
fwrite(buf,1,n,f_out);
}
fclose(f_in);
fclose(f_out);
return?1;
}
int?main()
{
if?(!merge?(“1.txt”,?“2.txt”,?“3.txt”))
printf(“Failed”);
else
printf(“successfully”);
return?0;
}
分享名稱:c語(yǔ)言函數(shù)merge C語(yǔ)言函數(shù)定義
網(wǎng)頁(yè)網(wǎng)址:http://jinyejixie.com/article34/dosghse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、搜索引擎優(yōu)化、建站公司、做網(wǎng)站、微信公眾號(hào)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)