Дан массив, содержащий 2018 положительных целых чисел, не превышающих 10000. Необходимо...

0 голосов
60 просмотров

Дан массив, содержащий 2018 положительных целых чисел, не превышающих 10000. Необходимо умножить все элементы массива, меньшие 40, на одно и то же значение, так чтобы при этом максимальный из них стал как можно больше, но не превысил значения 10000. Гарантируется, что в массиве есть хот бы один элемент, меньший 40. Напишите на одном из языков программирования программу для решения этой задачи. В качестве результата программа должна вывести изменённый массив, по одному элементу в строке. Например, для исходного массива из 5 элементов 1 21 315 81 57 программа должна вывести (по одному числу в строке) числа 476 9996 315 81 57 (все элементы, меньшие 40 умножены на 476).


Информатика (33 баллов) | 60 просмотров
Дан 1 ответ
0 голосов

#include

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;</p>

 return 0;

}

(5.1k баллов)