Найти сумму элементов массива меньше 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
происходит итерация по всем элементам массива и их печать. Это позволяет увидеть исходный массив и массив после умножения четных элементов на сумму этих элементов. Список действий: - Инициализация массива
- Нахождение суммы элементов массива
- Умножение четных элементов массива на сумму этих элементов
- Печать массива до и после умножения четных элементов на сумму этих элементов
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д