请用c++代码实现矩阵运算
时间: 2024-01-06 11:05:14 浏览: 72
下面是C++代码实现矩阵加法、矩阵乘法和矩阵转置的示例:
```c++
#include <iostream>
using namespace std;
const int MAXN = 100;
int A[MAXN][MAXN], B[MAXN][MAXN], C[MAXN][MAXN];
int n, m, p;
// 矩阵加法
void matrixAdd() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
C[i][j] = A[i][j] + B[i][j];
}
}
}
// 矩阵乘法
void matrixMul() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < p; j++) {
C[i][j] = 0;
for (int k = 0; k < m; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
// 矩阵转置
void matrixTranspose() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
C[j][i] = A[i][j];
}
}
}
int main() {
cin >> n >> m >> p;
// 输入矩阵A
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> A[i][j];
}
}
// 输入矩阵B
for (int i = 0; i < m; i++) {
for (int j = 0; j < p; j++) {
cin >> B[i][j];
}
}
// 矩阵加法
matrixAdd();
// 输出结果
for (int i = 0; i < n; i++) {
for (int j = 0; j < p; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}
// 矩阵乘法
matrixMul();
// 输出结果
for (int i = 0; i < n; i++) {
for (int j = 0; j < p; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}
// 矩阵转置
matrixTranspose();
// 输出结果
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << C[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
注意:以上代码仅为示例,没有进行输入矩阵的合法性检查。实际应用中,需要根据具体需求进行适当的修改和完善。
阅读全文