**
矩阵转置函数
**
之前找的矩阵转置函数都不适合用于行与列数不相等的情况,干脆自己写了一个
#include <iostream>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
void move(int* matrix,int row,int col)
{
int i,j,k;
int *b=new int[row*col];
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
*(b+j*row+i)=*(matrix+i*col+j);
}
}
for(i=0;i<col;i++)
{
for(j=0;j<row;j++)
{
*(matrix+i*row+j)=*(b+i*row+j);
}
}
delete[]b;
}
int main(int argc, char** argv) {
int row,col,i,j;
int *p;
cout<<"请输入行数和列数"<<endl;
cin>>row>>col;
p=new int[row*col];
cout<<"输入矩阵元素"<<endl;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
cin>>p[i*col+j];
}
}
cout<<"转置前的矩阵为"<<endl;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
cout<<p[i*col+j]<<" ";
}
cout<<endl;
}
move(p,row,col);
cout<<"转置后的矩阵为"<<endl;
for(i=0;i<col;i++)
{
for(j=0;j<row;j++)
{
cout<<p[i*row+j]<<" ";
}
cout<<endl;
}
return 0;
}