c语言问题 转换矩阵

输入一个3*4矩阵,输出转换矩阵
如输入:
1 6 9 3
1 1 0 2
1 9 8 9
输出:
1 1 1
6 1 9
9 0 8
3 2 9

写个一般性的给你把
如果要其他几乘几的矩阵的,可以对应修改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];
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-24
#include "stdio.h"
#include "conio.h"

main()
{
int a[3][4],b[4][3],i,j;
for(i=0;i<=2;i++)
{
for (j=0;j<=3;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<=2;i++)
{
printf("\n");
for(j=0;j<=3;j++)
{
printf(" %d",a[i][j]);
b[j][i]=a[i][j] ;
}
}
printf("\n\n") ;
for(j=0;j<=3;j++)
{
printf("\n");
for(i=0;i<=2;i++)
printf(" %d",b[j][i]) ;
}
}
第2个回答  2008-05-22
上面的写得很好了,不动手了。
第3个回答  2008-05-22
#include<stdio.h>
#include<stdlib.h>

int main()
{
int a[4][4],i,j,b[4][4];
for(i=0;i<=3;i++)
{for (j=0;j<=3;j++)
scanf("%d",&a[i][j]);}

for(i=0;i<=3;i++) //输出你输入的矩阵;
{for(j=0;j<=3;j++)
{printf("%d ",a[i][j]);
b[j][i]=a[i][j]; }
printf("\n");}

printf("\n\n");

for(i=0;i<=3;i++) //转秩矩阵;
{
for (j=0;j<=3;j++)
{printf("%d ",b[i][j]);}
printf("\n");
}
system("pause");
}