写个一般性的给你把
如果要其他几乘几的矩阵的,可以对应修改N和M的值即可
#include<stdio.h>
#define N 3
#define M 4
int array[N][M];
int turn[M][N];
void main()
{
//在主函数内声明被调函数
void convert(int array[N][M],int turn[M][N]);
int i,j;
printf("请输入%d*%d矩阵:\n",N,M);
for(i=0;i<N;i++)
{
printf("请输入第%d行元素:\n",i);
for(j=0;j<M;j++)
{
scanf("%d",&array[i][j]);
}
}
printf("\n");
printf("转置前的矩阵为:\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%d\t",array[i][j]);
printf("\n");
}
//调用矩阵转置函数
convert(array,turn);
printf("\n");
printf("转置后的矩阵为:\n");
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
printf("%d\t",turn[i][j]);
printf("\n");
}
}
void convert(int array[N][M],int turn[M][N])
{
int i,j,t;
for(i=0;i<N;i++)
for(j=0;j<M;j++)//设置数组中转置矩阵元素交换
{
turn[j][i]=array[i][j];
}
}
温馨提示:答案为网友推荐,仅供参考