作者riceworn (riceworn)
看板C_and_CPP
標題[問題] 寫一個能夠合併兩陣列並將之排序好的新陣列之函數
時間Thu Apr 30 23:54:53 2009
各位先進好
我最近在寫一個函式,他的輸入值分別是A陣列、B陣列、A陣列長度、B陣列長度、C陣列
先假設A、B陣列都已經有初值了
C陣列是要將A、B陣列合併的新陣列
我的想法是先將A、B陣列都放入C
然後再將C做氣泡排序法
以下是我的程式
#include <stdio.h>
#include <string.h>
void merge(int nums1[],int nums2[],int length1,int length2,int result[])
{
int i,j,tmp;
for(i=0;i<length1;i++)
result[i]=nums1[i];
for(i=0;i<length2;i++)
result[i+length1]=nums2[i];
for(i=6;i>=0;i++)
{
for(j=0;j<=i;j++)
{
if(result[j]>result[j+1])
{
tmp=result[j];
result[j]=result[j+1];
result[j+1]=tmp;
}
}
}
}
int main(int argc, char *argv[]){
int nums1[5]={1,2,3,4,5},nums2[3]={1,3,8};
int result[8]={0,0,0,0,0,0,0,0},i;
merge(nums1,nums2,5,3,result);
for(i=0;i<8;i++)
{
printf("第%d位數是%d\n",i+1,result[i]);
}
system("PAUSE");
return 0;
}
小弟現在的問題是
compiler執行時候黑色畫面審一下就消失了
實在沒有頭緒,想請教各位先進指導一下
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.64.187.6
1F:推 sosokill:是直接結束了吧....加個最後system("pause");看看 04/30 23:56
2F:推 QQ29:用vc就按ctrl+F5吧 05/01 00:09
3F:推 Yshuan:1樓應該是正解吧... 05/01 00:40
4F:→ riceworn:有加哦,所以才覺得很怪,怎會這樣 ^^a 05/01 01:05
5F:→ sosokill:程式碼裡面沒看你加啊 05/01 01:45
6F:→ chirs1985:mergesort裡的第一個迴圈就有問題了... 05/01 12:16
※ 編輯: riceworn 來自: 61.64.187.6 (05/01 19:14)
7F:推 bubu19861213:for(i=6;i>=0;i++) ??????? 05/06 23:18