矩阵的转置
程序员文章站
2024-01-03 21:25:34
...
#include <stdio.h>
#define N 3
int main()
{
int a[N][N],i,j,temp;
printf("原始矩阵为:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
if(j>i)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
printf("转置后矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
return 0;
}
第二种方法
#include <stdio.h>
#define N 3
int main()
{
int a[N][N],i,j,temp;
printf("原始矩阵为:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=1;i<N;i++)
for(j=0;j<i;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
printf("转置后矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-4d",a[i][j]);
printf("\n");
}
return 0;
}
第三种方式
用第二个数组存储转置后的矩阵
#include <stdio.h>
#define N 3
int main()
{
int a[N][N],b[N][N],i,j,temp;
printf("原始矩阵为:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{
b[j][i]=a[i][j];
}
printf("转置后矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%-4d",b[i][j]);
printf("\n");
}
return 0;
}