Дан массив в[20]. Найти max и min элементов и поменять их местами.​


Grey0808: Python?
sasha060310: паскаль?
gbsnat: c++ ?
Grey0808: Ruby?
Grey0808: Java?
gbsnat: lisp?

Ответы

Ответ дал: Аноним
1

Ответ:

c++

Решение приведено для массива заполненного натуральными числами.

Приложения:

gbsnat: вот у тебя min изначально 9, а если все элементы массива больше 9, тогда что? min0 у тебя останется неопределенным и здравствуй баг
Аноним: да, действительно, напутал
Аноним: строку номер 6 заменить на
int mass [20], max, min, max0, min0;
после строки номер 7 написать
min = max = mass[0];
и алгоритм будет работать для любых целых чисел
Аноним: max0 и min0 занулить
Ответ дал: gbsnat
1

#include <iostream>

using namespace std;

signed main(){

   const int n = 20;

   int arr[n], max_value, min_value, max_index = 0, min_index = 0;

   for(int i = 0; i < n; i++)

       cin >> arr[i];

   max_value = min_value = arr[0];

   for(int i = 1; i < n; i++){

       if(arr[i] > max_value){

           max_value = arr[i];

           max_index = i;

       }

       if(arr[i] < min_value){

           min_value = arr[i];

           min_index = i;

       }

   }

   swap(arr[max_index], arr[min_index]);

   for(int i = 0; i < n; i++)

       cout << arr[i] << " ";

}

Вас заинтересует