定义二维整数数组,帮我实现五阶矩阵的转置。并且计算转置前后主副对角线元素之和,和该矩阵跟转置矩阵的乘积。
时间: 2024-01-05 18:42:51 浏览: 26
我可以为您实现这个操作。以下是我的代码实现:
```
#include <iostream>
using namespace std;
int main() {
int a[5][5], b[5][5];
int diagonal1 = 0, diagonal2 = 0;
// 输入二维整数数组 a
cout << "请输入二维整数数组 a:\n";
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
cin >> a[i][j];
}
}
// 转置矩阵并计算主副对角线元素之和
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
b[j][i] = a[i][j];
if(i == j) diagonal1 += a[i][j];
if(i == 4-j) diagonal2 += a[i][j];
}
}
cout << "转置矩阵 b 为:\n";
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
cout << b[i][j] << " ";
}
cout << endl;
}
cout << "主对角线之和为:" << diagonal1 << endl;
cout << "副对角线之和为:" << diagonal2 << endl;
// 计算 a 与 b 的乘积
int c[5][5] = {0};
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
for(int k = 0; k < 5; k++){
c[i][j] += a[i][k] * b[k][j];
}
}
}
cout << "a 与 b 的乘积 c 为:\n";
for(int i = 0; i < 5; i++){
for(int j = 0; j < 5; j++){
cout << c[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
希望可以为您提供帮助!