C语言中如何编程:将两行三列的二维数组转换为三行两列的二维数组?

如题所述

利用矩阵转置就行
#include <stdio.h>
#define MAX 20
int m,n;
void transpose(double a[][MAX],double b[][MAX])
{
int i,j;
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++)
b[i][j]=a[j][i];
}

void main()
{
int i,j;
double a[MAX][MAX],b[MAX][MAX];
puts("输入矩阵的行,列:");
scanf("%d %d",&m,&n);
puts("输入矩阵元素:");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%lf",&a[i][j]);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]-int(a[i][j])!=0)
printf("%lf ",a[i][j]);
else
printf("%d ",int(a[i][j]));
}
puts("");
}
transpose(a,b);

puts("转置后的矩阵为:");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(b[i][j]-int(b[i][j])!=0)
printf("%lf ",b[i][j]);
else
printf("%d ",int(b[i][j]));
}
puts("");
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-06
for(i=0;i<3;i++)
for(j=0;j<2;j++)
b[i][j]=a[j][i];