写一个函数,将一个5×5的整型矩阵中最大的元素放在中心,4个角分别放4个最小的元素(顺序为从左到右,从上到下顺序依次从小到大存放)。所有的元素调整都需要通过位置的交换实现。在main函数中输入和输出矩阵,通过调用函数来实现矩阵的处理过程。
时间: 2024-05-05 07:21:25 浏览: 48
5*5的矩阵中最大的元素放在中心 四个角分别放四个最小的元素
以下是实现该函数的代码:
```c++
#include <iostream>
using namespace std;
void adjustMatrix(int matrix[][5]) {
int max = matrix[0][0]; // 最大元素的值
int max_i = 0, max_j = 0; // 最大元素的下标
int min = matrix[0][0]; // 最小元素的值
int min_i, min_j; // 最小元素的下标
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (matrix[i][j] > max) {
max = matrix[i][j];
max_i = i;
max_j = j;
}
if (matrix[i][j] < min) {
min = matrix[i][j];
min_i = i;
min_j = j;
}
}
}
// 将最大元素放到中心
int temp = matrix[2][2];
matrix[2][2] = max;
matrix[max_i][max_j] = temp;
// 将四个角分别放置最小元素
temp = matrix[0][0];
matrix[0][0] = min;
matrix[min_i][min_j] = temp;
min = matrix[1][1];
min_i = 1;
min_j = 1;
for (int i = 0; i < 5; i += 4) {
for (int j = 0; j < 5; j += 4) {
if (matrix[i][j] < min) {
min = matrix[i][j];
min_i = i;
min_j = j;
}
}
}
temp = matrix[0][4];
matrix[0][4] = min;
matrix[min_i][min_j] = temp;
min = matrix[1][3];
min_i = 1;
min_j = 3;
for (int i = 0; i < 5; i += 4) {
for (int j = 0; j < 5; j += 4) {
if (matrix[i][j+2] < min) {
min = matrix[i][j+2];
min_i = i;
min_j = j+2;
}
}
}
temp = matrix[4][0];
matrix[4][0] = min;
matrix[min_i][min_j] = temp;
min = matrix[3][1];
min_i = 3;
min_j = 1;
for (int i = 0; i < 5; i += 4) {
for (int j = 0; j < 5; j += 4) {
if (matrix[i+2][j] < min) {
min = matrix[i+2][j];
min_i = i+2;
min_j = j;
}
}
}
temp = matrix[4][4];
matrix[4][4] = min;
matrix[min_i][min_j] = temp;
}
int main() {
int matrix[5][5];
cout << "请输入5*5矩阵:" << endl;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cin >> matrix[i][j];
}
}
adjustMatrix(matrix);
cout << "调整后的矩阵:" << endl;
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
例如,若输入以下矩阵:
```
5 6 10 8 9
3 7 15 11 12
2 1 13 14 20
4 16 17 19 18
25 24 23 22 21
```
则输出:
```
调整后的矩阵:
1 2 10 6 9
3 4 15 11 12
5 13 19 14 20
7 16 17 22 18
25 24 23 8 21
```
阅读全文