编写程序,输入一个整型的二行三列的二维数组,并将该二维数组行和列的元素互换,存到另一个二维数组中输

#include"stdio.h"
main()
{
int a[2][3],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",a[i][j]);
a[j][i]=a[i][j];
for(j=0;j<2;i++)
for(i=0;i<3;j++)
printf("%d\n",a[j][i]);
}
哪里有错啊?

第1个回答  推荐于2016-04-06
#include"stdio.h"
main()
{
int a[2][3],i,j,b[3][2];//定义另一个数组
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{ scanf("%d",a[i][j]);
b[j][i]=a[i][j];}//大括号,给另一个数组赋值;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
printf("%d\n",b[i][j]);
}本回答被提问者采纳
第2个回答  2010-05-11
你不是说要存到另一个数组中嘛。假如再有一个数组b[3][2]
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
scanf("%d",a[i][j]);
b[j][i]=a[i][j];
}
第3个回答  2010-05-11
首先没按要求存到另一个数组中去。另外你处理a[1][2];时换了一次,处理a[2[[1]时又换回来了,等于没变。
第4个回答  2010-05-11
当你I和j分别为1和2时就错了,a[2][1]根本就越界了。
第5个回答  2010-05-11
改成这样

#include<stdio.h>
int main()
{
int a[2][3],b[3][2],i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
for(i=0;i<3;i++)
for(j=0;j<2;j++) {
b[i][j]=a[j][i];
printf("%d ",b[i][j]);
}
printf("\n");
}
return 0;
}