1252 - C语言10.22
写一个函数,将一个3×3的整形矩阵转置。
Input
共有三行,每行包括三个用空格隔开的整数,表示整个3×3的矩阵。
Output
与输入格式相同,输出转置后的矩阵。在每个整数后输出一个空格。
请注意行尾输出换行。
Examples
Input
1 2 3 4 5 6 7 8 9
Output
1 4 7 2 5 8 3 6 9
Solution C
int main(int argc, char* argv[]) { int a[3][3],i,j,tem; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); for(i=0;i<3;i++) for(j=0;j<i;j++) {tem=a[i][j];a[i][j]=a[j][i];a[j][i]=tem;} for(i=0;i<3;i++) {for(j=0;j<3;j++) printf("%d ",a[i][j]); puts("");} return 0; }
Solution C++
#include <stdio.h> int main() { void T(int mat[][3]); int mat[3][3]; int i, j; for (i = 0;i < 3;i++) for (j = 0;j < 3;j++) scanf("%d", &mat[i][j]); T(mat); for (i = 0;i < 3;i++) { for (j = 0;j < 3;j++) printf("%d ", mat[i][j]); printf("\n"); } return 0; } /* 矩阵转置函数 */ void T(int mat[][3]) { int i, j, temp; for (i = 0;i < 3;i++) { for (j = 0;j < i;j++) { temp = mat[i][j]; mat[i][j] = mat[j][i]; mat[j][i] = temp; } } }