另一道C练习题

来源:百度知道 编辑:UC知道 时间:2024/06/07 12:31:05
编个程序,使用指针,把一个3行3列的矩阵进行转制处理:
这道题我用数组会做,可是指针用的不大熟练,大家帮我编个吧

也许你的不知道数组元素用指针如何表示吧?

对于一个数组 int a[3][3]以及指针int *p=a

a[i][j]=*(p+3*i+j)

我自己写的,你不妨参考一下:
#include<stdio.h>
void move(int *p)
{
int i,j,b;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
b = *(p+i*3+j);
*(p+i*3+j) = *(p+j*3+i);
*(p+j*3+i) = b;
}
}
void main()
{
int a[3][3];
int i,*p;
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);
for(i=0;i<3;i++)
{
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
}
运行结果:
1,2,3
4,5,6
7,8,9
1 4 7
2 5 8
3 6 9
Press any key to continue