2505 - 【数组】矩阵转置(例题)
时间限制 : 1 秒
内存限制 : 128 MB
例5.8 输入3*3的矩阵,将其转置后输出。矩阵转置是矩阵的行列交换,如:
2 1 3 2 3 1
3 3 1 转置为: 1 3 2
1 2 1 3 1 1
题目输入
3*3的矩阵:共三行,每行3个整数。
题目输出
三行,每行三个整数,用空格分隔,表示转置后的矩阵。
(注意:需要修改教材程序中的输出格式语句)
输入/输出样例
输入格式
2 1 3 3 3 1 1 2 1
输出格式
2 3 1 1 3 2 3 1 1
C语言解答
#include<stdio.h> int main() { int i,j,t,count; int a[3][3]; 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=i+1;j<3;j++) { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t;} for(i=0;i<3;i++) { count=1; for(j=0;j<3;j++) if(count==1) { printf("%d",a[i][j]);count++;} else { printf(" %d",a[i][j]);count++;} printf("\n"); } return 0; }
C++解答
#include<cstdio> #include<iostream> #include<cstdio> using namespace std; int a[4][4]; int main() { for (int i=1; i<=3; ++i) { for (int j=1; j<=3; ++j) cin>>a[i][j]; } for (int i=1; i<4; ++i) { for (int j=1; j<4; ++j) if (j==1) cout<<a[j][i]; else cout<<" "<<a[j][i]; cout<<endl; } return 0; }