满意答案
yrjd9698
2014.09.30
采纳率:56% 等级:9
已帮助:166人
程序没错,逻辑有问题。inver函数中第二个for语句结束条件改为j
代码如下:
#include
int main()
{
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j;
void invert(int (*p)[3]);
for( i=0;i<3;i++)
{
for( j=0;j<3;j++)
{
printf("%d\t",a[i][j]);
if(j==2) printf("\n");
}
}
printf("\n");
invert(a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d\t",a[i][j]);
if(j==2) printf("\n");
}
}
return 0;
}
void invert(int (*p)[3])
{
int temp,i,j;
for(i=0;i<3;i++)
{
for(j=0;j
if(i!=j)
{
temp=*(*(p+i)+j);
*(*(p+i)+j)=*(*(p+j)+i);
*(*(p+j)+i)=temp;
}
}
printf("\n");
}
00分享举报