比如下面这个矩阵
1 2 3
4 5 6
7 8 9
转置后是
1 4 7
2 5 8
3 6 9
如何用C语言实现?
这个主要涉及到双重循环,逐行扫描,需要一重循环,按行逐列扫描,又需要一重循环,所以说需要双重循环
循环体内执行的操作就是坐标互换,x变y,y变x,中间可能需要一个临时变量。
参考代码如下:
int transpose(int M[N][N], int n)
{
int temp;
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
temp = M[i][j];
M[i][j] = M[j][i];
M[j][i] = temp;
}
}
}