樓主,你的問題是邏輯錯誤,我按你的算法手動走了一遍它所需要的空間遠遠大于13,你可以手動跟著程序走一遍,對于函數(shù)調用沒什么問題,只是算法錯了你在看你的問題也有錯誤你說a【8】和b【5】是由小到大排序但你看a【8】,b【5】的值是有小到大馬;
創(chuàng)新互聯(lián)是一家專業(yè)從事網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁設計的品牌網(wǎng)絡公司。如今是成都地區(qū)具影響力的網(wǎng)站設計公司,作為專業(yè)的成都網(wǎng)站建設公司,創(chuàng)新互聯(lián)依托強大的技術實力、以及多年的網(wǎng)站運營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設、營銷型網(wǎng)站建設及網(wǎng)站設計開發(fā)服務!
#include stdio.h
void merge(int a[8],int b[5]);
int main()
{
int a[8]={4,7,8,11,42,55,66,77},b[5]={1,54,77,444,741};
merge(a,b);
return 0;
}
void merge(int a[8],int b[5])
{int c[14],i=0,k=0,j=0,p;
while(i8)
while(j5)
if(a[i]b[j])
{
c[k]=b[j];
j=j+1;
k++;
break;
}
else
{
c[k]=a[i];
i=i+1;
k++;
break;
}
while(i8)
{
c[k]=a[i];
k++;
i++;
}
while(j5)
{
c[k]=b[j];
k++;
j++;
}
for(k=0;k13;k++)
printf ("%d ",c[k]);
}樓主你的意思是不是兩個從小到大的數(shù)組放到第三個數(shù)組里也是按從小到大的順序存放,你看這個算法實現(xiàn)的功能是不是你想要的
我運行了能通過。
希望能幫到你。
主函數(shù)的實參是由操作系統(tǒng)傳遞的。
c++規(guī)定的主函數(shù)標準格式(c語言未具體規(guī)定):int
main(int
argc,
char
*argv[])
其中int
argc
表示操作系統(tǒng)傳遞給程序的參數(shù)個數(shù),char
*argv[]
存儲各個參數(shù)。
例如:
若有程序如下:
int
main(int
argc,
char
*argv[])
{
int
i;
printf("您輸入了
%d
個參數(shù)\n分別是:",argc);
for(i=0;i
運行-
cmd
-
輸入
c:\app.exe
hello
world!
回車
執(zhí)行結果將是:
您輸入了
3
個參數(shù)
分別是:c:\app.exe
hello
world!
"
注意,第一個參數(shù)值將是你程序的文件名。
形參全稱形式參數(shù),位置是寫在函數(shù)定義時函數(shù)名后面的括號中,比如
int max(int x, int y)
{函數(shù)內(nèi)容}
這個函數(shù),形參就是函數(shù)名max后面括號里定義的x和y
而實參全稱實際參數(shù),是你在這個函數(shù)之外調用該函數(shù)的時候,函數(shù)名后的括號中的內(nèi)容
比如
main()
{
int a=3,b=4;
int c=max(a,b);
}
在int c=max(a,b)這一行可以看到,實參就是max括號后的a和b