-
题目描述:
-
输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。
-
输入:
-
输入的第一行包括一个整数N,(1<=N<=100),代表矩阵的维数。
接下来的N行每行有N个整数,分别代表矩阵的元素。
-
输出:
-
可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出。
-
样例输入:
-
3 1 2 3 4 5 6 7 8 9
-
样例输出:
-
1 4 7 2 5 8 3 6 9
思路:
投机取巧了,并没有逆置,而是直接打印的。
其实直接swap两个逆置的位置就行。
代码:
#include <stdio.h>
#define N 100
int main(void)
{
int n, i, j;
int a[N][N];
while (scanf("%d", &n) != EOF)
{
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &a[i][j]);
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n-1; j++)
{
printf("%d ", a[j][i]);
}
printf("%d\n", a[j][i]);
}
}
return 0;
}
/**************************************************************
Problem: 1193
User: liangrx06
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/