Вопрос задан 02.10.2023 в 08:02. Предмет Информатика. Спрашивает Андрієшин Олег.

ПОМОГИТЕ ПЛИЗ С ЗАДАЧОЙ ПО С++!!!!! ДАЮ 30 БАЛЛОВ!!! Условие Дана последовательность целых чисел,

оканчивающаяся нулём. Необходимо найти число, наиболее близкое к максимальному по величине числу в этой последовательности (второй максимум). Ноль числом последовательности не считается. Если в последовательности два числа равных максимуму, то вторым максимумом считается число равное первому максимуму. Формат входных данных Вводится не более чем 2 (в 15 степени) целых чисел, каждое из которых не превосходит по модулю 2(в 15 степени)−1. После последнего числа вводится 0. Гарантируется, что последовательность содержит хотя бы два элемента. Формат выходных данных Требуется вывести искомое число. входные данные 13 42 6 0 33 32 33 0 Выходные данные 13 33
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Шишкин Андрей.

#include <iostream>

using namespace std;

int main() {

int x, max, max2;

cin >> x;

max = x;

cin >> x;

max2 = x;

while (x != 0) {

 if (x > max2) {

  max2 = x;

 }

 if (max2 > max) {

  int d = max;

  max = max2;

  max2 = d;

 }

 cin >> x;

}

cout << max2;

return 0;

}  

0 0
Отвечает Тарабаев Святослав.

Код программы:

#include <iostream>

#include <locale>

using namespace std;

int main()

{

setlocale(LC_ALL, "Russian");

int a, max1, max2;

bool f = true;

cout << "Введите числа:" << endl;

cin >> a;

max1 = a;

max2 = a;

while (a) {

 cin >> a;

 if (max1 < a && a != 0) {

  max2 = max1;

  max1 = a;

  f = false;

 }

 else {

  if (f) {

   max2 = a;

   f = false;

  }

  if ((max2 < a || a == max1) && a != 0)

   max2 = a;

 }

}

cout << "Второе максимальное число: " << max2 << endl;

return 0;

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Давайте рассмотрим код на C++, который решает вашу задачу:

cpp
#include <iostream> using namespace std; int main() { int max1 = -32768; // Инициализируем переменную для хранения максимального значения int max2 = -32768; // Инициализируем переменную для хранения второго максимального значения int num; while (true) { cin >> num; if (num == 0) { break; // Если встретили ноль, завершаем ввод } if (num > max1) { max2 = max1; // Обновляем второй максимум max1 = num; // Обновляем максимум } else if (num > max2 && num < max1) { max2 = num; // Обновляем второй максимум, если num больше текущего второго максимума, но меньше текущего максимума } } cout << max2 << endl; // Выводим второй максимум return 0; }

Этот код считывает последовательность чисел, ищет два максимальных числа (max1 и max2) и выводит второй максимум.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос