int printf(const char *, ...); void initGeMatrix(int m, int n, double *A, int incRowA, int incColA) { int i, j; for (i=0; i<m; ++i) { for (j=0; j<n; ++j) { A[i*incRowA+j*incColA] = i*n + j + 1; } } } void printGeMatrix(int m, int n, const double *A, int incRowA, int incColA) { int i, j; for (i=0; i<m; ++i) { for (j=0; j<n; ++j) { printf("%10.4lf ", A[i*incRowA+j*incColA]); } printf("\n"); } printf("\n\n"); } double A[6*8]; int main() { initGeMatrix(6, 8, A, 1, 6); printf("A =\n"); printGeMatrix(6, 8, A, 1, 6); printf("A^T =\n"); printGeMatrix(8, 6, A, 6, 1); printf("diag(A) =\n"); printGeMatrix(6, 1, A, 1+6, 6); return 0; } |