二维数组转置问题我错在哪里!!调试时候不是正确结果

来源:百度知道 编辑:UC知道 时间:2024/09/23 08:28:45
#include<stdio.h>
int i,j,t,b[4][3];
transpose(int array[][4])
{
for(i=0;i<3;i++)

for(j=0;j<=i;j++)
{
t=array[i][j];
array[i][j]=b[j][i];
b[j][i]=t;

}
}
void main()

{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
transpose(&a[0][0]);
for(i=0;i<=3;i++)
{
for(j=0;j<=2;j++)
printf("%5d",b[i][j]);
printf("\n");
}

}
谁知道啊!救救我1

#include<stdio.h>
int i,j,t,b[4][3];
void transpose(int array[3][4])//没有返回值,定义为void,
{
for(i=0;i<3;i++)
for(j=0;j<4;j++)//j<4
{
t=array[i][j];
array[i][j]=b[j][i];
b[j][i]=t;
}
}
void main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
transpose(a);//传递的是数组的首地址,数组名就是首地址
for(i=0;i<=3;i++)
{
for(j=0;j<=2;j++)
printf("%5d",b[i][j]);
printf("\n");
}

}