题解 | #矩阵转置#
矩阵转置
http://www.nowcoder.com/practice/351b3d03e410496ab5a407b7ca3fd841
#include<stdio.h>
#include<malloc.h>
int main(void)
{
int n,m;
int **num1;
int **num2;
scanf("%d %d",&n,&m);
num1=(int **)malloc(sizeof(int *)*n);
for(int i=0;i<n;i++)
num1[i]=(int *)malloc(sizeof(int)*m);
num2=(int **)malloc(sizeof(int *)*m);
for(int i=0;i<m;i++)
num2[i]=(int *)malloc(sizeof(int)*n);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
scanf("%d",&num1[i][j]);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
num2[j][i]=num1[i][j];//转置矩阵就是将第一行变成第一列,将行数和列数进行转换即可
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
printf("%d ",num2[i][j]);
printf("\n");
}
return 0;
}