题目
将一个3 * 3的整型二维数组转置,用一函数实现之。在主函数中用scanf函数输入以下格式的数组元素:
将数组0行0列元素的地址作为函数实参,在执行函数的过程中实现行列互换,函数调用结束后在主函数中输出已转置的二维数组。
#include <stdio.h>
int main()
{
void change(int a[3][3]);
int a[3][3];
printf("please enter an array:");
int i,j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
scanf("%d",&a[i][j]);
}
}
change(a);
printf("Now, matrix:\n");
for (i= 0; i < 3; i++)
{
for (j = 0; j < 3; i++)
{
printf("%d ",a[i][j]);
if(j==2)
{
printf("\n");
}
}
}
return 0;
}
void change(int a[3][3])
{
int b[3][3];
int i,j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
b[j][i]=a[i][j];
}
}
for( i=0;i<=2;i++)
for( j=0;j<=2;j++)
{
a[i][j]=b[i][j];
}
}
这是怎么错的,为什么和预期的不一样