(我在pta做了很多次都不行)下图是我写的程序,模拟运行没有问题,但是就是显示我答案错误!
输入一个n×n的方阵,把其转置并输出。
输入格式:
测试数据有多组,处理到文件尾。对于每组测试,第一行输入一个整数n(n≤10),接下来的n行每行输入n个不超过2位的整数。
输出格式:
对于每组测试,输出这n×n矩阵的转置方阵,每行的每两个数据之间留一个空格。
输入样例:
5
5 51 96 80 45
51 57 77 45 47
72 45 58 83 21
0 28 42 72 42
91 61 7 73 66
输出样例:
5 51 72 0 91
51 57 45 28 61
96 77 58 42 7
80 45 83 72 73
45 47 21 42 66
你的实现仅仅是在输出上将数组以转置的形式输出,数组本身并没有转置。题目的要求是将其转置并输出。我实现了一版,供你参考。如果对你有帮助,望采纳。
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int arr[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &arr[i][j]);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
int tmp = arr[i][j];
arr[i][j] = arr[j][i];
arr[j][i] = tmp;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d", arr[i][j]);
if (j != n - 1)
printf(" ");
}
printf("\n");
}
return 0;
}