编写一个3*3矩阵转置的函数,在main()函数中输入数据

2024-11-30 18:18:10
推荐回答(2个)
回答1:

用指针或是直接交换.
下面是指针的写法:
#include
using namespace std;
void fun(int *p)
{
int i,j,k;
for(i=0;i<3;i++)
{
for(j=i;j<3;j++)
{
k=*(p+3*i+j);
*(p+3*i+j)=*(p+3*j+i);
*(p+3*j+i)=k;
}
}
}
int main()
{
int i,j,*p2;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
for( i=0;i<3;i++)
{
for( j=0;j<3;j++)
cout<<*(*(a+i)+j)<<" ";
cout< }
cout< p2=&a[0][0];
fun(p2);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
cout<<*(*(a+i)+j)<<" ";
cout< }
}

回答2:

这样弄完结果是不变的。fun函数参数改成指针类型,跟在下面的操做也改成指针操作就可以了