• Дан массив, содержащий 2018 положительных целых чисел, не превышающих 10000. Необходимо умножить все элементы массива, меньшие 40, на одно и то же значение, так чтобы при этом максимальный из них стал как можно больше, но не превысил значения 10000. Гарантируется, что в массиве есть хот бы один элемент, меньший 40. Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке.

    Например, для исходного массива из 5 элементов
    1 21 315 81 57
    программа должна вывести (по одному числу в строке) числа
    476 9996 315 81 57
    (все элементы, меньшие 40 умножены на 476).

Ответы 1

  • #include <iostream>

    using namespace std;

    int

    main ()

    {

     int i, g, max = 0, a[2018];

     for (i = 0; i < 2018; i++)

       cin >> a[i];

     for (i = 0; i < 2018; i++)

       if (a[i] < 40)

         {

    if (a[i] > max)

      max = a[i];

         };

     g = 10000 / max;

     for (i = 0; i < 2018; i++)

       if (a[i] < 40)

         a[i] = a[i] * g;

     for (i = 0; i < 2018; i++)

       cout << a[i] << endl;

     return 0;

    }

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years