Problem A: Matrix Problem : Array Practice
Time Limit: 1 Sec Memory Limit: 4 MB
Submit: 24263 Solved: 8964
[Submit][Status]
Description
求一个m×n阶矩阵A的转置矩阵AT。矩阵A的每个元素都在int类型的范围之内。
Input
输入的第一行为一个整数M(M>0),后面有M组输入数据。每组数据以两个正整数m和n开始,满足0<m,n<=100,接下来为一个m行n列的矩阵A。
Output
输出为多组,每组输出A的转置矩阵AT。矩阵的输出为:每行两个元素之间用一个空格分开,每行最后一个元素之后为一个换行,在下一行开始输出矩阵的下一行。每两组输出之间用一个空行分隔开。
Sample Input
1
3 3
1 2 3
4 5 6
7 8 9
Sample Output
1 4 7
2 5 8
3 6 9
HINT
二维数组存储矩阵。
Append Code
解法如下:
#include <stdio.h>
int main() {
int num;
scanf("%d", &num);
while (num-- != 0) {
int m, n, i, j;
int a[101][101];
scanf("%d %d", &m, &n);
for (i = 0; i < m; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for (j = 0; j < n; j++) {
for (i = 0; i < m; i++)
if (i != m - 1)
printf("%d ", a[i][j]);
else
printf("%d", a[i][j]);
printf("\n");
}
if (num != 0)
printf("\n");
}
}