C语言算法题:矩阵转置

这个是我的代码:

#include <stdio.h>

int input_M = 0, input_N = 0;

int main() {

scanf("%d%d", &input_M, &input_N);

int matrix1[input_M][input_N];

int matrix2[input_N][input_M];

for (int i = 0; i < input_M; ++i) {

for (int j = 0; j < input_N; ++j) {

scanf("%d", &matrix1[i][j]);

matrix2[j][i] = matrix1[i][j];

}

}

for (int i = 0; i < input_N; ++i) {

for (int j = 0; j < input_M; ++j) {

printf("%d%s", matrix2[i][j], (j == input_M - 1 ? "" : " "));

}

if (i != input_N - 1) { printf("\n"); }

}

return 0;

}

image

上面是题目,一直是答案错误。

回答:

#include <stdio.h>

int input_M = 0, input_N = 0;

int main() {

int i = 0;

int j = 0;

scanf("%d%d", &input_M, &input_N);

int matrix1[input_M][input_N];

for (i = 0; i < input_M; ++i) {

for (j = 0; j < input_N; ++j) {

scanf("%d", &matrix1[i][j]);

}

}

for (j = 0; j < input_N; ++j) {

for (i = 0; i < input_M; ++i) {

printf("%d", matrix1[i][j]);

if (i == input_M - 1) {

printf("\n");

} else {

printf(" ");

}

}

}

return 0;

}

以上是 C语言算法题:矩阵转置 的全部内容, 来源链接: utcz.com/p/192269.html

回到顶部