二维数组只有地址传递没有值传递,如可由以下几种方法实现矩阵的转置。
code:
#include <iostream>
using namespace std;
int rever(int (&a)[3][3])
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
int temp;
//cout<<temp<<endl;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
//a[i][j]=a[j][i];
//a[j][i]=temp;
}
}
}
int main(int argc, char *argv[])
{
int a[3][3];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cin>>a[i][j];
}
}
rever(a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int rever(int (*a)[3])
{
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<i;j++)
{
int temp;
//cout<<temp<<endl;
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
//a[i][j]=a[j][i];
//a[j][i]=temp;
}
}
}
int main(int argc, char *argv[])
{
int a[3][3];
int i,j;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cin>>a[i][j];
}
}
rever(a);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}