- 题目描述:
-
输入一个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 ", a[j][i]); } } return 0; } /************************************************************** Problem: 1193 User: liangrx06 Language: C Result: Accepted Time:10 ms Memory:912 kb ****************************************************************/