ПРОГРАММИРОВАНИЕ НА С++ найдите и поменяйте местами элементы с минимальными и максимальными значениями в двумерном массиве.
c++
int min_val = arr[0][0]; // минимальное значение
int max_val = arr[0][0]; // максимальное значение
// Поиск минимального и максимального значения
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
if(arr[i][j] < min_val) {
min_val = arr[i][j];
}
if(arr[i][j] > max_val) {
max_val = arr[i][j];
}
}
}
После того, как мы нашли минимальное и максимальное значение, нам нужно найти их индексы в массиве. Для этого снова пройдемся по всем элементам массива и сравниваем значение с минимальным и максимальным.
c++
int min_i = 0, min_j = 0; // индексы минимального значения
int max_i = 0, max_j = 0; // индексы максимального значения
// Поиск индексов минимального и максимального значения
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
if(arr[i][j] == min_val) {
min_i = i;
min_j = j;
}
if(arr[i][j] == max_val) {
max_i = i;
max_j = j;
}
}
}
После того, как мы нашли индексы минимального и максимального значения, нам нужно поменять их местами. Для этого можно использовать временную переменную, чтобы не потерять одно из значений.
c++
// Меняем местами минимальное и максимальное значения
int tmp = arr[min_i][min_j];
arr[min_i][min_j] = arr[max_i][max_j];
arr[max_i][max_j] = tmp;
Все эти действия можно собрать в одну функцию. Вот полный код программы:
c++
#include <iostream>
using namespace std;
void swap_min_max(int** arr, int rows, int cols) {
int min_val = arr[0][0]; // минимальное значение
int max_val = arr[0][0]; // максимальное значение
int min_i = 0, min_j = 0; // индексы минимального значения
int max_i = 0, max_j = 0; // индексы максимального значения
// Поиск минимального и максимального значения
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
if(arr[i][j] < min_val) {
min_val = arr[i][j];
}
if(arr[i][j] > max_val) {
max_val = arr[i][j];
}
}
}
// Поиск индексов минимального и максимального значения
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
if(arr[i][j] == min_val) {
min_i = i;
min_j = j;
}
if(arr[i][j] == max_val) {
max_i = i;
max_j = j;
}
}
}
// Меняем местами минимальное и максимальное значения
int tmp = arr[min_i][min_j];
arr[min_i][min_j] = arr[max_i][max_j];
arr[max_i][max_j] = tmp;
}
int main() {
int rows = 3;
int cols = 3;
int **arr = new int*[rows];
for(int i = 0; i < rows; i++) {
arr[i] = new int[cols];
for(int j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
cout << "Original array:" << endl;
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
swap_min_max(arr, rows, cols);
cout << "Array after swapping min and max values:" << endl;
for(int i = 0; i < rows; i++) {
for(int j = 0; j < cols; j++) {
cout << arr[i][j] << " ";
}
cout << endl;
}
// Удаление массива
for(int i = 0; i < rows; i++) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
Таким образом, мы можем легко и быстро найти и поменять местами элементы с минимальными и максимальными значениями в двумерном массиве, используя язык С++.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет