3*3二维数组转置 C语言 具体代码如下,没有报错,但是运行一半就停止了。

#include<stdio.h>
int a[3][3];

int main()
{
void convert(int a[][3]);

int i,j;
printf("please input the value of a \n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)

printf("a[%d][%d] =%d ",i,j,a[i][j]);

printf("\n");

}

convert(a);

for(i=0;i<3;i++)
{
for(j=0;j<3;j++)

printf("a[%d][%d] =%d",i,j,a[i][j]);

printf("\n");

}

return 0;

}

void convert(int a[][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=i+1;i<3;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}

}

函数里面有一处写错了

void convert(int a[][3])
{
int i,j,temp;
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)//这里应该是j<3 å†™æˆi<3导致死循环 è¶Šç•Œæº¢å‡º
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}

}
温馨提示:答案为网友推荐,仅供参考