(C语⾔)指针转置矩阵
2.编写函数,求⼀个3×3矩阵的转置矩阵。
(1)编程提⽰
转置矩阵,将原矩阵的⾏变为列,列变为⾏。注意,通过指针访问⼆维数组时的⽅法。本题采⽤的是指向数组元素的指针变量。
输⼊样例:
1 2 3
4 5 6
7 8 9
输出样例:
1 4 7
2 5 8
3 6 9
代码如下
#include<stdio.h>
int main()
{
void move(int pointer);
int a[3][3];
int p,i;指针与二维数组
printf(“input 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§;
printf(“Now,matrix:\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 pointer)
{
int i,j,t;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
t=(pointer+3i+j);
(pointer+3i+j)=(pointer+3*j+i);
(pointer+3j+i)=t;
}
}
}