题解 | #矩阵转置#
矩阵转置
https://www.nowcoder.com/practice/351b3d03e410496ab5a407b7ca3fd841
#include <stdio.h> int (*dit(int (*p)[5], int m, int n))[5] { int (*a)[5] = (int (*)[5])malloc(n * sizeof(int[5])); int i, j; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { a[j][i] = *(*(p + i) + j); } } return a; } int main() { int m, n; scanf("%d %d", &m, &n); int i, j; int a[5][5]; for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { scanf("%d", &a[i][j]); } } int (*ret)[5] = dit(a, m, n); for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { printf("%d ", ret[i][j]); } printf("\n"); //free(ret); } return 0; }