效果如图:
部分参考来源:http://c.biancheng.net/view/579.html
基本原理:将第一个矩阵的所有元素绕着一条从第一行第一列出发的右下角 45° 的射线做镜面反转,即可得到该矩阵的转置。
源码如下:
#include <stdio.h>
//利用数组解决线性代数中的矩阵转置问题
int main()
{
int i,j,i1,j1,a[101][101],b[101][101];
printf("please input the number of rows(<=100)\n");
scanf("%d",&i1);
printf("please input the number of columns(<=100)\n");
scanf("%d",&j1);
printf("please input the element\n");
for(i=0;i<i1;i++)
for(j=0;j<j1;j++)
scanf("%d",&a[i][j]);
printf("array a:\n");
for(i=0;i<i1;i++)
{
for(j=0;j<j1;j++)
printf("\t%d",a[i][j]);
printf("\n");
}
for(i=0;i<i1;i++)
for(j=0;j<j1;j++)
b[j][i]=a[i][j];
printf("array b:\n");
for(i=0;i<j1;i++)
{
for(j=0;j<i1;j++)
printf("\t%d",b[i][j]);
printf("\n");
}
return 0;
}