随手写的。考虑到矩阵行列不一定一样,所以手动输入行列。然后就用到了二维指针初始化二维数组。直接上源码
#include<stdio.h>
#include<iostream>
using namespace std;
/***
*矩阵转置
***/
int main(){
int n,m,i,j;
cin>>n;//输入行
cin>>m;//输入列
int **a = new int*[n];
for(i=0;i<n;i++){
a[i] = new int[m];
}
int **b = new int*[m];
for(i=0;i<m;i++){
b[i] = new int[n];
}
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cin>>a[i][j];//输入
}
}
//开始转置
for(i=0;i<n;i++){
for(j=0;j<m;j++){
b[j][i] = a[i][j];
}
}
//输出原始矩阵
for(i=0;i<n;i++){
for(j=0;j<m;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
//输出转置矩阵
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<b[i][j]<<" ";
}
cout<<endl;
}
//释放空间
for(i=0;i<n;i++){
delete(a[i]);
}
delete(a);
for(i=0;i<m;i++){
delete(b[i]);
}
delete(b);
return 0;
}