Информатика

На языке C++, используя контейнер vector, не используя вложенные циклы, найдите два числа в массиве с произведением

На языке C++, используя контейнер vector, не используя вложенные циклы, найдите два числа в массиве с произведением, максимальным. Вам дано n ≤ 50000 - количество элементов в массиве. В следующей строке даны сами элементы массива - целые числа, по модулю не превышающие 30000. Выведите два искомых числа в порядке возрастания.
Верные ответы (1):
  • Морской_Путник
    Морской_Путник
    55
    Показать ответ
    Название: Поиск двух чисел с наибольшим произведением вектора

    Разъяснение: Для решения данной задачи, мы можем использовать контейнер vector языка C++. Проходим по вектору и находим два наибольших числа и записываем их в переменные `max1` и `max2`. После чего выводим их в порядке возрастания.

    cpp
    #include
    #include
    #include

    using namespace std;

    int main() {
    int n;
    cin >> n;

    vector arr(n);
    for (int i = 0; i < n; i++) {
    cin >> arr[i];
    }

    int max1 = -30001, max2 = -30001; // Задаем начальное значение переменных

    for (int i = 0; i < n; i++) {
    if (arr[i] >= max1) {
    max2 = max1;
    max1 = arr[i];
    } else if (arr[i] > max2) {
    max2 = arr[i];
    }
    }

    cout << min(max1, max2) << " " << max(max1, max2) << endl;

    return 0;
    }


    Совет: Чтобы понять данный код и выразить его наиболее просто и понятно, можно внимательно изучить каждую строку и посмотреть, какие значения присваиваются переменным `max1` и `max2`. Также важно осознать, что условие `arr[i] >= max1` находит наибольшее число, а условие `arr[i] > max2` находит второе по величине число.

    Ещё задача: Давайте представим, что вектор содержит следующие элементы: `{5, 10, 2, 15, 8}`. Какие два числа будут найдены и выведены при выполнении данной программы?
Написать свой ответ: