#include <stdio.h>
int main()
{
void move(int *p);
int a[3][3];
int *p,i;
printf("请输入原始数组的值:\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("转置后的数组为:\n");
for(i=0;i<3;i++)
{
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}//按照行进行输出
return 0;
}
void move(int *p)
{
int i,j,t;
for(i=0;i<3;i++) //这个大循环是用来转置数组数据的
{
for(j=i;j<3;j++)
{
t=*(p+3*i+j); //*(p+3*i+j)表示第i行的第j列的值
*(p+3*i+j)=*(p+3*j+i); //*(p+m*i+j)表示指针p所指向的数组的第i行第j列的元素
*(p+3*j+i)=t; //m为p指向的数组的列数
}
}
}
将一个3*3的数组进行转置(第八章第9题)
最新推荐文章于 2022-10-18 19:32:55 发布