Напишите программу, которая заполняет массив из 20 элементов случайными трёхзначными числами и находит в нём элемент, у которого наибольшая сумма цифр, и его но мер. С++ ТОЛЬКО СИ ++

10RAM10 10RAM10    3   20.04.2020 21:40    88

Ответы
Бубльгум8888 Бубльгум8888  26.01.2024 16:34
Хорошо, я могу помочь вам написать программу на языке C++, которая будет решать данную задачу.

Прежде всего, мы должны понять, как заполнить массив случайными трёхзначными числами. Для этого нам понадобится библиотека случайных чисел , а также функции rand() и srand(). Давайте создадим функцию, которая будет заполнять массив случайными трёхзначными числами:

```cpp
#include
#include
#include

void fillArray(int array[], int size)
{
srand(time(0)); // Инициализация генератора случайных чисел

for (int i = 0; i < size; i++)
{
array[i] = rand() % 900 + 100; // Генерация случайного трёхзначного числа
}
}
```

Далее, нам нужно создать функцию для вычисления суммы цифр числа. Для этого мы будем считать остатки от деления числа на 10, чтобы получить каждую цифру, и затем суммировать их. Давайте создадим соответствующую функцию:

```cpp
int digitSum(int number)
{
int sum = 0;

while (number > 0)
{
sum += number % 10; // Получение цифры числа
number /= 10; // Убираем последнюю цифру числа
}

return sum;
}
```

Теперь мы можем создать главную функцию программы, которая будет находить элемент массива с наибольшей суммой цифр. В этой функции мы вызовем функцию fillArray(), чтобы заполнить массив, затем пройдемся по всем элементам массива, находя сумму цифр каждого числа и запоминая индекс элемента с максимальной суммой:

```cpp
int main()
{
const int size = 20;
int array[size];

fillArray(array, size);

int maxSum = 0;
int maxIndex = 0;

for (int i = 0; i < size; i++)
{
int sum = digitSum(array[i]);

if (sum > maxSum)
{
maxSum = sum;
maxIndex = i;
}
}

std::cout << "Число с наибольшей суммой цифр: " << array[maxIndex] << std::endl;
std::cout << "Наибольшая сумма цифр: " << maxSum << std::endl;

return 0;
}
```

Вот и весь код программы. Теперь, при запуске программы, она заполнит массив из 20 случайных трёхзначных чисел, найдет число с наибольшей суммой цифр и выведет его на экран, а также выведет саму наибольшую сумму цифр.

Надеюсь, мой ответ вам помог! Если есть ещё вопросы, не стесняйтесь задавать.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика