求助!要将3*3的数组行列互换,我的代码怎么改?为什么?
#include <stdio.h>
void f(int a[3][3],int b[3][3])
{
int i,j;
for (i=0;i<3;i++)
{
for (j=0;j<=2;j++)
{
printf ("原数组是:%d",a[i][j]);
}
printf ("\n");
}
b[j][i]=a[i][j];
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
printf ("转置后的数组是:%d\n",b[i][j]);
}
printf ("\n");
}
}
void main ()
{
int a[3][3]={11,12,13,14,15,16,17,18,19};
int b[3][3];
f (a[3][3],b[3][3]);
}
[解决办法]
哪里转置了,就打印了两次。
printf ("转置后的数组是:%d\n",b[j][i]);
[解决办法]
首先你的函数里面没有什么转置什么的。这个就留给你自己做吧。
f (a[3][3],b[3][3]);改为f (a,b);
[解决办法]
改成f(a,b);就表事调用a,b这两个二维数组