
ПОМОГИТЕ ПЛИЗ С ЗАДАЧОЙ ПО С++!!!!! ДАЮ 30 БАЛЛОВ!!! Условие Дана последовательность целых чисел,
оканчивающаяся нулём. Необходимо найти число, наиболее близкое к максимальному по величине числу в этой последовательности (второй максимум). Ноль числом последовательности не считается. Если в последовательности два числа равных максимуму, то вторым максимумом считается число равное первому максимуму. Формат входных данных Вводится не более чем 2 (в 15 степени) целых чисел, каждое из которых не превосходит по модулю 2(в 15 степени)−1. После последнего числа вводится 0. Гарантируется, что последовательность содержит хотя бы два элемента. Формат выходных данных Требуется вывести искомое число. входные данные 13 42 6 0 33 32 33 0 Выходные данные 13 33

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

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



Код программы:
#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;
}



Давайте рассмотрим код на 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) и выводит второй максимум.


Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili