您的位置:首页 > 其它

南阳oj 题目29 求转置矩阵问题

2015-07-08 20:10 239 查看


求转置矩阵问题

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


注:此题为:南阳oj 题目29 求转置矩阵问题

说明:转置就是对二维数组位置的调换

已AC源代码:

#include<stdio.h>
int b[3][3];
int main()
{
void ZZ(int a[][3]);
int a[3][3];
int *p;
int i,j,T;
scanf("%d",&T);
while(T--)
{
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
ZZ(a);
for(p=b[0];p<b[0]+9;p++)
{
if(p-b[0]!=0&&(p-b[0])%3==0)
printf("\n");
printf("%d ",*p);
}
printf("\n\n");
}
return 0;
}

void ZZ( int (*p)[3])
{
int i,j,t;
int (*p1)[3];
p1=b;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
*(*(p1+j)+i)=*(*(p+i)+j);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息