将一个M*N的矩阵实现对角线交换
时间: 2024-04-11 11:29:10 浏览: 80
要实现对任意M*N的矩阵进行对角线交换,您可以使用以下代码:
```cpp
#include <iostream>
using namespace std;
int main() {
int m, n;
cout << "请输入矩阵的行数:";
cin >> m;
cout << "请输入矩阵的列数:";
cin >> n;
int matrix[100][100];
// 输入矩阵元素
cout << "请输入矩阵的元素:" << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << "请输入第" << i + 1 << "行,第" << j + 1 << "列的元素:";
cin >> matrix[i][j];
}
}
// 输出原始矩阵
cout << "原始矩阵为:" << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 对角线交换
if (m == n) {
for (int i = 0; i < m; i++) {
int temp = matrix[i][i];
matrix[i][i] = matrix[i][n - i - 1];
matrix[i][n - i - 1] = temp;
}
cout << "对角线交换后的矩阵为:" << endl;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
} else {
cout << "输入的矩阵不是方阵,无法进行对角线交换。" << endl;
}
return 0;
}
```
这段代码首先接受用户输入的矩阵的行数和列数,然后使用一个二维数组 `matrix` 来存储矩阵元素。接下来,用户需要输入矩阵的元素,然后原样输出输入的矩阵。
如果输入的矩阵是方阵(即行数和列数相等),则进行对角线交换。对角线交换的原理是,通过遍历主对角线上的元素,将其与对应位置的副对角线上的元素进行交换。最后,输出交换后的矩阵。
如果输入的矩阵不是方阵,则会显示一条错误消息,因为只有方阵才能进行对角线交换。
阅读全文