c++ 调用函数进行5*5矩阵转置 要求用到指针

(明明不用指针也可以的)

第1个回答  2014-03-24
#include <iostream>
using namespace std;

const int N = 5;

int matrix[5][5] =
{
1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5,
1,2,3,4,5
};

void swap(int &a,int &b)
{
a=a^b;
b=a^b;
a=a^b;
}
void matrix_transpose(int m[N][N])
{
int i,j;
for(i=1;i<N;i++)
{
for(j=0;j<i;j++)
swap(m[i][j],m[j][i]);
}
}
void print(int m[N][N])
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
cout<<m[i][j]<<" ";
cout<<endl;
}
}

int main()
{
cout << "Hello world!" << endl;
int a=10;
int b=13;
swap(a,b);
cout<<"交换过之后:"<<"\ta :"<<a<<"\tb:"<<b<<endl;
print(matrix);
matrix_transpose(matrix);
cout<<"交换过顺序之后:"<<endl;
print(matrix);
return 0;
}追问

swap定义里的a^b没看懂

第2个回答  2014-03-24
早忘光了。。。
还有,我不会告诉你我是来做任务的
第3个回答  2014-03-24
把你的不用指针的a[i][j]换成*(a + i * 5 + j)就可以了。本回答被提问者采纳
相似回答