//源码如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int iRow, iCol;
int **pOrignal = NULL, **pTran = NULL;
int i, j;
cout<<"请输入矩阵的行、列数(用空格隔开): ";
cin>>iRow>>iCol;
cout<<endl;
// 分配内存空间
pOrignal = new int*[iRow];
for (i=0; i<iRow; i++)
{
pOrignal[i] = new int[iCol];
memset(pOrignal[i], 0, sizeof(int)*iCol);
}
pTran = new int*[iCol];
for (i=0; i<iCol; i++)
{
pTran[i] = new int[iRow];
memset(pTran[i], 0, sizeof(int)*iRow);
}
// 输入
cout<<"请输入矩阵各元素的值: "<<endl;
for (i=0; i<iRow; i++)
{
for (j=0; j<iCol; j++)
{
cin>>pOrignal[i][j];
}
}
cout<<endl;
// 转置
for (i=0; i<iCol; i++)
{
for (j=0; j<iRow; j++)
{
pTran[i][j] = pOrignal[j][i];
}
}
// 输出
cout<<"转置以后的矩阵为: "<<endl;
for (i=0; i<iCol; i++)
{
for (j=0; j<iRow; j++)
{
cout<<setw(5)<<pTran[i][j];
}
cout<<endl;
}
// 释放内存空间
for (i=0; i<iRow; i++)
{
delete[] pOrignal[i];
}
pOrignal = NULL;
for (i=0; i<iCol; i++)
{
delete[] pTran[i];
}
pTran = NULL;
getchar();
return 0;
}
// 测试结果如下:
温馨提示:答案为网友推荐,仅供参考