int a[]={128,34,23,17,10,0};
int b[]={1352,128,127,34,23,17,10,9,0};
int out[MAX];
merge(a,b,out);
out_array(out);
int a_length=0,b_length=0;
int a_data,b_data;
int i=0,j=0,k=0;
while(1) //計算陣列A和陣列B的長度
{
a_length=(a[i]==0)?a_length:++a_length;
b_length=(b[j]==0)?b_length:++b_length;
i=(a[i]==0)?i:++i;
j=(b[j]==0)?j:++j;
if(a[i]==0 && b[j]==0)
break;
}
for(i=0;a[i]!=0;i++) //將陣列A重複部分填0
{
for(j=0;b[j]!=0;j++)
{
if(a[i]==b[j]){
a[i]=0;
break;
}
}
}
i=0;
j=0;
k=0;
while(a[i]!=0 || b[j]!=0) //排序
{
a_data=a[i];
b_data=b[j];
out[k]=(a[i]>b[j])?a[i]:b[j];
k++;
if(a_data>b_data)
i++;
else if(a_data==0 && i<a_length)
i++;
if(b_data>a_data)
j++;
else if(b_data==0 && j<b_length)
j++;
}
int i=0;
while(out[i]!=0)
{
printf("%3d ",out[i++]);
}
printf("%3d\n",0);
留言列表