兩個已經從小到大的數組合併成爲一個從小到大排序的數組數組
1 #include<stdio.h> 2 int main() 3 { 4 int m,n,i,j,k,tem=0; 5 printf("這兩個數組分別有多少個數:\n"); 6 scanf("%d%d",&m,&n); 7 int a[m],b[n],c[m+n]; 8 printf("從小到大輸入%d個數:\n",m); 9 for(i=0;i<m;i++) 10 scanf("%d",&a[i]); 11 printf("從小到大輸入%d個數:\n",n); 12 for(i=0;i<n;i++) 13 scanf("%d",&b[i]); 14 i=0;j=0;k=0; 15 do 16 { 17 if(a[i]==b[j]) 18 { 19 c[k]=a[i]; 20 k++; 21 c[k]=b[j]; 22 k++;i++;j++; 23 } 24 else if (a[i]>b[j]) 25 { 26 c[k]=b[j]; 27 j++;k++; 28 } 29 else 30 { 31 c[k]=a[i]; 32 i++; 33 k++; 34 } 35 } 36 while((i!=m)&&(j!=n)); 37 if(i==m) 38 for(;j<n;j++,k++) 39 c[k]=b[j]; 40 if(j==n) 41 for(;i<m;i++,k++) 42 c[k]=a[i]; 43 printf("結果是:\n"); 44 for (;tem<m+n;tem++) 45 printf("%d ",c[tem]); 46 printf("\n"); 47 return 0; 48 } 49 測試運行: 50 xuxiang@xuxiang-X556UQ:~/桌面$ ./2 51 這兩個數組分別有多少個數: 52 6 4 53 從小到大輸入6個數: 54 6 9 11 13 13 13 55 從小到大輸入4個數: 56 1 13 13 19 57 結果是: 58 1 6 9 11 13 13 13 13 13 19 59 xuxiang@xuxiang-X556UQ:~/桌面$