求一个3X3矩阵转置问题

来源:互联网 发布:淘宝 bo5英国体育真假 编辑:程序博客网 时间:2024/05/06 06:59
时间限制:3000 ms  |  内存限制:65535 KB
难度:2
描述
求一个三行三列的转置矩阵。
输入
第一行一个整数n<20,表示有n组测试数据,下面是n组数据;
每组测试数据是九个整型数(每个数都不大于10000),分别为矩阵的的每项;
输出
每组测试数据的转置矩阵;
请在每组输出之后加一个换行
样例输入
21  2  3  4  5  6  7  8  92  3  4  5  6  7  8  9  1
样例输出
1 4 72 5 83 6 92 5 83 6 9

4 7 1

我的程序:

#include<iostream>using namespace std;float a[3][3];void change(){int i,j;float t;for(i=0;i<3;i++)for(j=i+1;j<3;j++){//从i+1开始。执行交换   t=a[i][j];   a[i][j]=a[j][i];   a[j][i]=t;    }}int main(){int n;cin>>n;while(n--) {int i,j;void change();for(i=0;i<3;i++)for(j=0;j<3;j++)cin>>a[i][j]; change(); for(i=0;i<3;i++){  for(j=0;j<3;j++)  cout<<a[i][j]<<" ";  cout<<endl; }cout<<"\n";}  return 0;}

最优解:

 #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;}}        


 

0 0
原创粉丝点击