Очень умоляю Вводятся 4 числа. Нужно вывести их в порядке убывания. При любых входных данных алгоритм должен выполнять не более пяти операций сравнения. Решения с большим количеством сравнений не оцениваются. Оператор вывода во всём тексте алгоритма должен быть единственный.
Відповідь:
#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;
}
Использовал одномерный массив и сделал сортировку методом выбора по убыванию