#include <iostream>
using namespace std;
int main() {
int n,max0=0,ind=0,max1= -2147483647;
/* n - размер массива, max0 - первый максимальный элемент, ind - индекс первого максимального, max1 - второй максимальный элемент */
cin >> n;
int *a = new int[n]; // указатель на динамический массив типа int и размера n.
for (int i = 0; i < n; i++)
if ((cin >> a[i], a[i]) > max0 || i == 0) {
/*(cin >> a[i], a[i]) - присваивание число массиву и сразу же проверка его на максимум. */
/* Обязательное условие i == 0, тк max0 может быть и отрицательным, поэтому в любом случае при первой итерации максимумом будет первый элемент.*/
max0 = a[i];
ind = i;
}
if (i != ind && a[i] > max1) max1 = a[i];
/* поиск второго максимума, обязательное условие (i != ind) */
cout << max0 + max1;
delete[] a; // удаление из памяти массив a
return 0;
Copyright © 2024 SCHOLAR.TIPS - All rights reserved.
Answers & Comments
Verified answer
#include <iostream>
using namespace std;
int main() {
int n,max0=0,ind=0,max1= -2147483647;
/* n - размер массива, max0 - первый максимальный элемент, ind - индекс первого максимального, max1 - второй максимальный элемент */
cin >> n;
int *a = new int[n]; // указатель на динамический массив типа int и размера n.
for (int i = 0; i < n; i++)
if ((cin >> a[i], a[i]) > max0 || i == 0) {
/*(cin >> a[i], a[i]) - присваивание число массиву и сразу же проверка его на максимум. */
/* Обязательное условие i == 0, тк max0 может быть и отрицательным, поэтому в любом случае при первой итерации максимумом будет первый элемент.*/
max0 = a[i];
ind = i;
}
for (int i = 0; i < n; i++)
if (i != ind && a[i] > max1) max1 = a[i];
/* поиск второго максимума, обязательное условие (i != ind) */
cout << max0 + max1;
delete[] a; // удаление из памяти массив a
return 0;
}