问答题 编写程序, 实现矩阵(3行3列)的转置(即行列互换) 例如, 输入下面的矩阵: 100 200 300 400 500 600 700 800 900 程序输出: 100 400 700 200 500 800 300 600 900 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。 给定源程序: #include int fun(int array[3][3]) { } main() { int i,j; int array[3][3]={{100,200,300}, {400,500,600}, {700,800,900}}; for (i=0;i<3;i++) { for (j=0;j<3;j++) printf("}",array[i][j]); printf("/n"); } fun(array); printf("Converted array:/n"); for (i=0;i<3;i++) { for (j=0;j<3;j++) printf("}",array[i][j]); printf("/n"); } NONO(); }
【正确答案】int fun(int array[3][3]) { int i,j,arr[3][3] ; memcpy(arr, array, 9*sizeof(int)) ; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < 3 ; j++) array[i][j] = arr[j][i] ; }
【答案解析】