Очень умоляю Вводятся 4 числа. Нужно вывести их в порядке убывания. При любых входных данных алгоритм должен выполнять не более пяти операций сравнения. Решения с большим количеством сравнений не оцениваются. Оператор вывода во всём тексте алгоритма должен быть единственный.

Fela06 Fela06    1   07.03.2022 15:20    7

Ответы
msganny msganny  07.03.2022 15:30

Відповідь:

#include <iostream>

using namespace std;

const int size = 4;

void inputarr(int *arr,const int size){

for(int i = 0 , counter = 1; i < size; i++, counter++){

 cout << "Введите " << counter << " число: ";

 cin >> arr[i];

}

}

void sortarr(int *arr,const int size){

for(int i = 0; i < size - 1; ++i){

 int biggest = i;

 for(int j = i + 1; j < size; ++j){

  if(arr[j] > arr[biggest]){

   biggest = j;

  }

 }

 

 swap(arr[i],arr[biggest]);  

}

}

void printarr(int *arr,const int size){

for(int i = 0; i < size; i++){

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

}

}

int main(){

setlocale(LC_ALL, "Rus");

int arr[size];

inputarr(arr,size);

cout << "Изначальное положение: ";

printarr(arr,size);

cout << "\nРезультат: ";

sortarr(arr,size);

printarr(arr,size);

return 0;

}

Использовал одномерный массив и сделал сортировку методом выбора по убыванию

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика