写一个函数,使给定的一个3*3的二维整形数组转置,即行列互换。我写的输出有错误:

2024-11-05 16:38:32
推荐回答(2个)
回答1:

函数不能嵌套定义的,你的函数定义应该放在主函数的外面。还有函数参数 int a[3][3], 这个改为int a[][3] 因为二维数组的第一维是不用指定的。改成这样比较好一些

回答2:

#include
void exchange(int a[3][3])
{
int i,j=1,t;
for(i=0;i<2;i++)
{
for(j=1;j<3;j++)
{
t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;
}
}
}
void main()
{
int i,j,a[3][3];
printf("enter nine number:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
}
printf("%2d",a[i][j]);
exchange(a);
printf("the number is:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%2d",a[i][j]);
printf("\n");
}
}

子函数不能在main函数中定义