Вычислить произведение между максимальным элементом массива и суммой его положительных элементов - C (СИ)
Формулировка задачи:
Дан линейный массив действительных чисел. Вычислить произведение между максимальным элементом массива и суммой его положительных элементов.
Решение задачи: «Вычислить произведение между максимальным элементом массива и суммой его положительных элементов»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int random(int min, int max)
{
static int first = 1;
if (first)
{
srand(time(NULL));
first = 0;
}
return min + rand() % (max - min);
}
int main()
{
int size,i,max,sum=0;
printf("enter array size: ");
scanf("%d",&size);
int arr[size];
for(i=0;i<size;i++)
{
arr[i] = random(-100,100);
printf("%d ",arr[i]);
if(arr[i]>0)
sum+=arr[i];
}
printf("\n");
max = arr[0];
for(i=0;i<size;i++)
if(max<arr[i])
max=arr[i];
printf("res = %d\n",max*(sum-max));
return 0;
}
Объяснение кода листинга программы
Вывод:
- Включаем необходимые заголовочные файлы
- Определяем функцию для генерации случайного числа в заданном диапазоне
- Определяем основную функцию программы
- Задаем переменные: размер массива, счётчик для цикла, максимальное значение, сумма положительных чисел
- Запрашиваем размер массива с помощью функции scanf
- Создаем массив заданного размера
- Заполняем массив случайными числами с помощью функции random
- Выводим элементы массива на экран через пробел
- Если элемент больше нуля, то прибавляем его к сумме
- Находим максимальное значение в массиве
- Вычисляем произведение максимального значения и суммы, исключая максимальное значение
- Выводим результат на экран
- Возвращаем 0, чтобы программа завершилась успешно Пояснение: — Функция random генерирует случайное число в заданном диапазоне. Она использует статическое значение first, чтобы инициализировать генератор случайных чисел при первом вызове, и затем использует функцию rand для генерации случайного числа. — Функция main запрашивает размер массива у пользователя, а затем заполняет массив случайными числами. Она отслеживает максимальное значение в массиве и сумму положительных чисел. — Переменная sum обновляется только если элемент больше нуля. Это гарантирует, что отрицательные числа не будут учтены при вычислении суммы. — Переменная max обновляется только если встречается новое максимальное значение. Это гарантирует, что значение max всегда будет максимальным значением в массиве. — Наконец, произведение max и sum вычисляется и выводится на экран. Оператор % в выражении max — max гарантирует, что произведение будет корректным, даже если max было последним положительным числом в массиве.