nyoj29-求置转换问题

求转置矩阵问题

时间限制: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;
	}
}        

posted @ 2018-03-24 22:15  浮生惘语  阅读(108)  评论(0编辑  收藏  举报