随手写的。考虑到矩阵行列不一定一样,所以手动输入行列。然后就用到了二维指针初始化二维数组。直接上源码
#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;
}
本文介绍了一种使用C++实现矩阵转置的方法。通过手动输入矩阵的行和列,利用二维指针初始化数组,实现了矩阵的输入、转置及输出。代码详细展示了如何动态分配和释放内存,以及矩阵转置的具体过程。
4231

被折叠的 条评论
为什么被折叠?



