Предмет: Информатика,
автор: хачик124
Дан массив, содержащий 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;
}
Похожие вопросы
Предмет: Оʻzbek tili,
автор: asadbekramozonov
Предмет: Английский язык,
автор: Domashkaopr
Предмет: Русский язык,
автор: rsalimova599
Предмет: Математика,
автор: kirill7823
Предмет: Математика,
автор: littlefox2