怎么用指针将一个3乘3数组转置?

来源:百度知道 编辑:UC知道 时间:2024/06/23 23:38:53

main()
{int a[3][3],*p,i;
printf("Iput matrix:\n");
for(i=0;i<3;i++)
scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
p=&a[0][0];
move(p);
printf("Now,matrix:\n");
for(i=0;i<3;i++)
printf("%d %d %d \n",a[i][0],a[i][1],a[i][2]);
}
void move(int *pointer)
{int i,j,t;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
运行结果:
Input matrix:
1 2 3
4 5 6
7 8 9
Now,matrix:
1 4 7
2 5 8
3 6 9