Помогите,пожалуйста. Язык С++
Задан двумерный массив NxN, найти максимальный и минимальный элемент в каждой строке и поменять их местами.
Ответы
#include <iostream>
#include <random>
/*
Задан двумерный массив NxN
найти максимальный и минимальный элемент в каждой строке
и поменять их местами
*/
int get_index(int *array, int symbol, int n) {
for (int i = 0; i < n; i++) {
if (array[i] == symbol) {
return i;
}
}
return -1;
}
int min_element(int *array, int n) {
int result = array[0];
for (int i = 1; i < n; i++) {
if (result > array[i]) {
result = array[i];
}
}
return result;
}
int max_element(int *array, int n) {
int result = array[0];
for (int i = 1; i < n; i++) {
if (result < array[i]) {
result = array[i];
}
}
return result;
}
int main() {
std::default_random_engine generator;
std::uniform_int_distribution<int> randint(1,9);
int n = 5;
int array[n][n];
std::cout << "array\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
array[i][j] = randint(generator);
std::cout << array[i][j] << " ";
}
std::cout << std::endl;
}
std::cout << "info\n";
for (int i = 0; i < n; i++) {
int min = min_element(array[i], n);
int max = max_element(array[i], n);
int index_min = get_index(array[i], min, n);
int index_max = get_index(array[i], max, n);
array[i][index_min] = max;
array[i][index_max] = min;
std::cout << "i = " << i
<< " | min = " << min
<< " | max = " << max
<< " | index min = " << index_min
<< " | index max = " << index_max
<< std::endl;
}
std::cout << "new array\n";
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
std::cout << array[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}