求转置矩阵问题
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
2
- 描述
- 求一个三行三列的转置矩阵。
- 输入
-
第一行一个整数n<20,表示有n组测试数据,下面是n组数据;
每组测试数据是九个整型数(每个数都不大于10000),分别为矩阵的的每项;
- 输出
-
每组测试数据的转置矩阵;
请在每组输出之后加一个换行
- 样例输入
-
2 1 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 1
样例输出
1 4 7 2 5 8 3 6 9 2 5 8 3 6 9 4 7 1
下面是我写的代码,能通过。
#include<stdio.h> int main() { int n; scanf("%d",&n); while(n--) { int a[3][3],i,j,t; scanf("%d%d%d%d%d%d%d%d%d",&a[0][0],&a[0][1],&a[0][2],&a[1][0],&a[1][1],&a[1][2],&a[2][0],&a[2][1],&a[2][2]); for(i=0;i<2;i++) for(j=0;j<3;j++) { if(i==1&&j==0) continue; else { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } } for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]); printf("\n");} printf("\n"); } }下面是最优程序,大家可以参考下
#include<iostream> using namespace std; int main() { int num,a,b,c,d,e,f,g,h,i; cin>>num; while(num--) { cin>>a>>b>>c>>d>>e>>f>>g>>h>>i; cout<<a<<" "<<d<<" "<<g<<endl<<b<<" "<<e<<" "<<h<<endl<<c<<" "<<f<<" "<<i<<endl<<endl; } }