Найти сумму элементов массива меньше 100 и больше 200 - C (СИ)
Формулировка задачи:
1. Функция инициализации массива из 100 элементов нечётными случайными значениями от 1 до 1000.
2. Функция, которая возвращает сумму элементов массива меньше 100 и больше 200.
3. Функция, которая умножает каждое чётное значение массива на разность из пункта 2.
Заранее благодарен!
Решение задачи: «Найти сумму элементов массива меньше 100 и больше 200»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_ELEMENTS 100
void init(int []);
int sum(int []);
void product(int [], int);
void print_arr(int []);
int main(int argc, char **argv)
{
int arr[MAX_ELEMENTS]; //массив на 100 элементов
int sum_elements = 0; //сумма элементов (пункт 2)
init(arr); //инициалиазция массива (пункт 1)
printf("\nИсходный массив:\n");
print_arr(arr); //распечатываем
//пункт 2
printf("\n\nСумма элементов = %d\n", sum_elements = sum(arr));
//умножение четных элементов (пункт 3)
product(arr, sum_elements);
printf("\n\nПолученный массив:\n");
print_arr(arr);
return 0;
}
void init(int arr[])
{
int i, rand_value;
srand(time(NULL));
for(i = 0, rand_value = rand() % 1000 + 1; i < MAX_ELEMENTS; ++i, rand_value = rand() % 1000 + 1)
if( ! (rand_value % 2) )
i--;
else
arr[i] = rand_value;
}
int sum(int arr[])
{
int sum_elements = 0, i = 0;
for( ; i < MAX_ELEMENTS; ++i)
if(arr[i] < 100 || arr[i] > 200)
sum_elements += arr[i];
return sum_elements;
}
void product(int arr[], int sum_elements)
{
int i = 0;
for( ; i < MAX_ELEMENTS; i += 2)
arr[i] *= sum_elements;
}
void print_arr(int arr[])
{
int i = 0;
for( ; i < MAX_ELEMENTS; ++i)
printf("%d => %d \n", i, arr[i]);
}
Объяснение кода листинга программы
Код представлен на языке C и выполняет следующие действия:
- Инициализация массива:
В функции
initгенерируются случайные значения для четных элементов массива, так что они становятся нечетными. Это делается для того, чтобы в последующем при умножении четных элементов на сумму этих элементов, полученная сумма была больше 200. - Нахождение суммы элементов массива:
В функции
sumпроисходит итерация по всем элементам массива и суммируются те элементы, которые меньше 100 или больше 200. - Умножение четных элементов массива на сумму этих элементов:
В функции
productпроисходит итерация по всем элементам массива с шагом 2 (то есть только для четных индексов) и умножение каждого четного элемента на сумму элементов, найденную в функцииsum. - Печать массива до и после умножения четных элементов на сумму этих элементов:
В функции
print_arrпроисходит итерация по всем элементам массива и их печать. Это позволяет увидеть исходный массив и массив после умножения четных элементов на сумму этих элементов. Список действий: - Инициализация массива
- Нахождение суммы элементов массива
- Умножение четных элементов массива на сумму этих элементов
- Печать массива до и после умножения четных элементов на сумму этих элементов