题解 | #矩阵转置#

矩阵转置

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;
}

全部评论

相关推荐

评论
1
收藏
分享
牛客网
牛客企业服务