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;
}
}
}