В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
veraeliseeva718
veraeliseeva718
29.05.2020 18:31 •  Информатика

Куча - Выбрать Минимум Напишите программу, которая будет обрабатывать последовательность запросов таких видов:

CLEAR — сделать пирамиду пустой (если в пирамиде уже были какие-то элементы, удалить все). Действие происходит только с данными в памяти, на экран ничего не выводится.

ADD n — добавить в пирамиду число n. Действие происходит только с данными в памяти, на экран ничего не выводится.

EXTRACT — вынуть из пирамиды максимальное значение. Следует и изменить данные в памяти, и вывести на экран или найденное максимальное значение, или, если пирамида была пустой, слово "CANNOT" (большими буквами).

Входные данные

Во входных данных записано произвольную последовательность запросов CLEAR, ADD и EXTRACT — каждый в отдельной строке, согласно вышеописанному формату.

Суммарное количество всех запросов не превышает 200000.

Выходные данные

Для каждого запроса типа EXTRACT выведите на стандартный выход (экран) его результат (в отдельной строке).

Примеры

Входные данные
ADD 192168812
ADD 125
ADD 321
EXTRACT
EXTRACT
CLEAR
ADD 7
ADD 555
EXTRACT
EXTRACT
EXTRACT

Выходные данные
125
321
7
555
CANNOT

Показать ответ
Ответ:
akulkaeva78
akulkaeva78
27.05.2021 07:46

#include <iostream>

using namespace std;

int main() {

setlocale(LC_ALL, "");

int N = 10;

int max = -9999999;

int sum = 0;

int choise = 0;

int arr[N] = {0};

cout << "Введите 10 значений: ";

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

cin >> arr[i];

}

cout << "Введите действие (1 - +, 2 - макс. значение, 3 - колво отр. значений)";

cin >> choise;

if(choise==1) {

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

sum+=arr[i];

}

cout << endl << "Сумма: " << sum;

}

if(choise==2) {

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

if(arr[i]>max) {

max = arr[i];

}

}

 cout << endl << "Макс. знач: " << max;

}

if(choise==3) {

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

   if(arr[i]<0) {

     ++sum;

   }

 }

 cout << "Колво отр. знач: " << sum;

}

 if(choise!=1&&choise!=2&&choise!=3) {

   cout << "Введите корректное значение.";

 }

 return 0;

}

0,0(0 оценок)
Ответ:
erke22
erke22
27.05.2021 07:46

ЯП: С++ | можно не писать std:: , если использовать пространство имен: using namespace std;

#include <iostream>

int main() {

const int SIZE = 10;

int regim, sum, max, count;

int arr[SIZE];

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

{

 std::cin >> arr[i]; // вводим элементы массива

 std::cout << arr[i] << "\t"; // выводим массив в консоль

}

std::cin >> regim;

if ((regim > 0) && (regim < 4))

{

 if (regim == 1)

 {

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

  {

   sum += arr[i]; // или sum = sum + arr[i];

  }

  std::cout << "Сумма элементов массива = " << sum << std::endl;

 }

 else if (regim == 2)

 {

  max = arr[0];

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

  {

   if (max < arr[i])

    max = arr[i];

  }

  std::cout << "Максимальный элемент в массиве = " << max << std::endl;

 }

 else

 {

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

  {

   if (arr[i] < 0)

    count++;

  }

  std::cout << "Число отрицательных элементов в массиве = " << count << std::endl;

 }

}

else

 std::cout << "Доступен только 1-3 режим!" << std::endl;

return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота