思路分析
我们先回忆一下矩阵转置的知识点:
算法实现:
实现的关键是要将矩阵的每个元素赋给转置矩阵的相对应位置,其实就是与主对角线对称的位置,即将原来矩阵每个元素的行和列下标值互换。如原来为a[i][j],其转置矩阵对应元素为b[j][i]。
案例代码如下
#include <stdio.h>
void main(){
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int b[4][3];
int i,j;
printf("矩阵转置前:");
printf("\n");
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d\t",a[i][j]);
}
printf("\n");
}
printf("矩阵转置后:");
printf("\n");
for(i=0;i<4;i++){
for(j=0;j<3;j++){
printf("%d\t",b[i][j]=a[j][i]);
}
printf("\n");
}
}
代码运行结果如下