Предмет: Информатика, автор: povsrot

Помогите,пожалуйста. Язык С++
Задан двумерный массив NxN, найти максимальный и минимальный элемент в каждой строке и поменять их местами.

Ответы

Автор ответа: anonymous2010
1

#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;

}


alexminaev: https://znanija.com/task/49744330?answeringSource=feedPublic%2FhomePage%2F10
alexminaev: Помогите, а я вам с рейтингом на сайте)
Похожие вопросы