C++代码一维数组排序 输入5×5矩阵A,完成下列要求(1)输出矩阵A。 (2)将第二行和第五行元素对调后,输出新的矩阵A1。 (3)用对角线上的各元素分别去除各元素所在行,输出新的矩阵A2。
时间: 2024-11-04 20:11:40 浏览: 30
以下是C++代码实现上述需求:
```cpp
#include <iostream>
using namespace std;
// 函数用于交换二维数组中的两行
void swapRows(int A[5][5], int r1, int r2) {
for (int i = 0; i < 5; i++) {
int temp = A[r1][i];
A[r1][i] = A[r2][i];
A[r2][i] = temp;
}
}
// 函数用于消除对角线上元素所在的行
void removeDiagonal(int A[5][5]) {
for (int i = 0; i < 5; i++) {
if (i == A[i][i]) { // 如果是对角线元素
A[i][i] = 0; // 清零
} else {
// 将其他非对角线元素移到对角线上
int temp = A[i][i];
A[i][i] = A[i][i + 1];
A[i][i + 1] = temp;
}
}
}
int main() {
int matrix[5][5];
// 输入5x5矩阵
cout << "请输入一个5x5矩阵:\n";
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cin >> matrix[i][j];
}
}
// 输出原始矩阵A
cout << "原始矩阵A:\n";
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 第二行与第五行对调
swapRows(matrix, 1, 4);
cout << "交换后的矩阵A1:\n";
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
// 消除对角线元素生成矩阵A2
removeDiagonal(matrix);
cout << "消除了对角线元素的新矩阵A2:\n";
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
这段代码首先接收用户输入的5x5矩阵,然后按要求进行操作,并输出每一步的结果。
阅读全文