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

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


nazikmuz: Сейчас попробую что-то сделать

Ответы

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

Відповідь:

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

}

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


nazikmuz: Я бы так сделал
Похожие вопросы
Предмет: Математика, автор: biman94