С++.Дано количество частей n, и сам массив а[i]. Необходимо найти 2

С++.
Дано количество частей n, и сам массив а[i]. Необходимо отыскать 2 максимальных числа и вывести их сумму.

к примеру n=5, a[i]= 1 2 3 4 5, sum=4+5=9
n=5, a[i]= 1 2 3 4 4, sum=4+4=8.
помогите исправить код)

Задать свой вопрос
Володя
По вашему образцу видно что должно быть конкретно так как я произнес
Наташа
n=5, a[i]= 1 2 3 4 4, sum=4+4=8
Aleksej Spuv
это ведь и есть 2 максимума, просто схожих
Олег Смотроков
Ну вот, понял, вы не против если немножко по-собственному напишу?
Елизавета Мырадова
а так как я ввела при поиске второго максимума a[i]
Чукитов Данил
да, только с изъясненьями если можно)
Регина Сохрина
Хорошо.
Кира Смоланова
А есть гарантии на то что должно быть в массиве как минимум 2 элемента?
Кристина Бидбунова
да, как минимум 2
Leha Rudchev
Хорошо.
1 ответ

include lt;iostreamgt;

using namespace std;

int main()

int n,max0=0,ind=0,max1= -2147483647;

/* n - размер массива, max0 - 1-ый максимальный элемент, ind - индекс первого наибольшего , max1 - второй максимальный элемент */

cin gt;gt; n;

int *a = new int[n]; // указатель на динамический массив типа int и размера n.

for (int i = 0; i lt; n; i++)

 if ((cin gt;gt; a[i], a[i]) gt; max0 i == 0)  

 /*(cin gt;gt; a[i], a[i]) - присваивание число массиву и сходу же проверка его на максимум. */

 /* Обязательное условие i == 0, тк max0 может быть и отрицательным, поэтому в любом случае  при первой итерации максимумом будет первый элемент.*/

  max0 = a[i];

  ind = i;

 

for (int i = 0; i lt; n; i++)

 if (i != ind amp;amp; a[i] gt; max1) max1 = a[i];  

/* поиск второго максимума, непременное условие (i != ind) */

cout lt;lt; max0 + max1;

delete[] a; // удаление из памяти массив a

   return 0;

Таисия Друбаш
Код сотворен для школьников, где учитель взыскательно инспектирует по одному типу
Иванович Амелия
То есть вы предлагаете в цикл пихать префиксный инкремент?
Вероника
В случае i++ сначала выполняется тело цикла, а позже меняется значение счётчика, мне это и нужно было.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт