C++编程 将一个5X5的矩阵中最大的元素放在中心,最小的元素放在左下角,写一函数实现之。用main函数调用。
时间: 2024-02-15 22:06:16 浏览: 72
好的,下面是实现该功能的C++代码:
```c++
#include <iostream>
using namespace std;
void findMinMax(int arr[5][5], int& minVal, int& maxVal) {
minVal = arr[0][0];
maxVal = arr[0][0];
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (arr[i][j] < minVal) {
minVal = arr[i][j];
}
if (arr[i][j] > maxVal) {
maxVal = arr[i][j];
}
}
}
}
void moveMinMax(int arr[5][5]) {
int minVal, maxVal;
findMinMax(arr, minVal, maxVal);
// move minVal to bottom-left corner
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (arr[i][j] == minVal) {
swap(arr[i][j], arr[4][0]);
break;
}
}
}
// move maxVal to center
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
if (arr[i][j] == maxVal) {
swap(arr[i][j], arr[2][2]);
break;
}
}
}
}
int main() {
int arr[5][5] = {
{3, 7, 2, 8, 1},
{9, 4, 6, 5, 2},
{2, 1, 9, 3, 7},
{8, 5, 3, 1, 6},
{4, 9, 7, 2, 5}
};
moveMinMax(arr);
// print the modified matrix
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
该程序首先定义了两个函数,`findMinMax` 和 `moveMinMax`,分别用于查找矩阵中的最小和最大元素,并将它们移动到指定位置。然后在 `main` 函数中定义了一个 5x5 的矩阵,并调用 `moveMinMax` 函数来将矩阵中最大的元素放在中心,最小的元素放在左下角。最后,程序输出修改后的矩阵。
注意:该程序假设矩阵中所有元素都不同。如果有相同元素,则只会将第一个找到的最小/最大元素移动到指定位置。
阅读全文