📌  相关文章
📜  国际空间研究组织 | ISRO CS 2008 |问题 15(1)

📅  最后修改于: 2023-12-03 15:23:02.518000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2008 | 问题 15

这是一道关于矩阵转置的问题。题目描述如下:

将一个N * N的矩阵A转置,并将结果存储在矩阵B中。请编写一个函数,该函数接受矩阵A和B的指针,并使用C语言实现转置操作。

思路

矩阵转置是指将矩阵A的行列互换得到一个新矩阵B。对于一个N * N的矩阵A,可使用两层循环实现矩阵转置:

for (int i = 0; i < N; i++) {
    for (int j = 0; j < N; j++) {
        B[j][i] = A[i][j];
    }
}

即将矩阵A第i行第j列元素赋值给矩阵B第j行第i列元素,由此实现矩阵转置。

代码

根据上述思路,可编写函数如下:

void transpose(int A[][N], int B[][N]) {
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            B[j][i] = A[i][j];
        }
    }
}

其中,N为矩阵A的行数或列数。将函数放入程序中调用即可完成矩阵转置操作。