1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <stdio.h> #define N 4 int insert_row(int a[][N],int n,int b[][N],int m) { int i, j, k, t; int s[n+m]; for (i=n; i<n+m; i++) for (j=0; j<N; j++) a[i][j] = b[i-n][j]; for (i=0; i<n+m; i++) { s[i] = 0; for (j=0; j<N; j++) s[i] += a[i][j]; } for (i=0; i<n+m-1; i++) for (j=0; j<n+m-1-i; j++) { if (s[j]>s[j+1]) { t = s[j], s[j] = s[j+1], s[j+1] = t; for (k=0; k<N; k++) t = a[j][k], a[j][k]=a[j+1][k], a[j+1][k]=t; } } return n+m; } int main(int argc, char *argv[]) { int i, j, num; int x[4][N] = { { 2, 2, 3, 4}, { 9,10,11,12} }; int y[][N] = { { 1, 3, 5, 7}, { 5,10,15,20} }; num =insert_row(x, 2, y, 2); for (i=0; i<num; i++) { for (j=0; j<N; j++) printf("%d ", x[i][j]); printf("\n"); } return 0; } |