Найти сумму элементов массива меньше 100 и больше 200 - C (СИ)

Узнай цену своей работы

Формулировка задачи:

1. Функция инициализации массива из 100 элементов нечётными случайными значениями от 1 до 1000. 2. Функция, которая возвращает сумму элементов массива меньше 100 и больше 200. 3. Функция, которая умножает каждое чётное значение массива на разность из пункта 2. Заранее благодарен!

Решение задачи: «Найти сумму элементов массива меньше 100 и больше 200»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5.  
  6. #define MAX_ELEMENTS 100
  7.  
  8.  
  9. void init(int []);
  10. int sum(int []);
  11. void product(int [], int);
  12.  
  13. void print_arr(int []);
  14.  
  15. int main(int argc, char **argv)
  16. {
  17.     int arr[MAX_ELEMENTS]; //массив на 100 элементов
  18.     int sum_elements = 0; //сумма элементов (пункт 2)
  19.    
  20.     init(arr); //инициалиазция массива (пункт 1)
  21.     printf("\nИсходный массив:\n");
  22.     print_arr(arr); //распечатываем
  23.    
  24.     //пункт 2
  25.     printf("\n\nСумма элементов = %d\n", sum_elements = sum(arr));
  26.  
  27.     //умножение четных элементов (пункт 3)
  28.     product(arr, sum_elements);
  29.     printf("\n\nПолученный массив:\n");
  30.     print_arr(arr);
  31.  
  32.     return 0;
  33. }
  34.  
  35. void init(int arr[])
  36. {
  37.     int i, rand_value;
  38.  
  39.     srand(time(NULL));
  40.  
  41.     for(i = 0, rand_value = rand() % 1000 + 1; i < MAX_ELEMENTS; ++i, rand_value = rand() % 1000 + 1)
  42.         if( ! (rand_value % 2) )
  43.             i--;
  44.         else
  45.             arr[i] = rand_value;
  46. }
  47.  
  48. int sum(int arr[])
  49. {
  50.     int sum_elements = 0, i = 0;
  51.     for( ; i < MAX_ELEMENTS; ++i)
  52.         if(arr[i] < 100 || arr[i] > 200)
  53.             sum_elements += arr[i];
  54.     return sum_elements;
  55. }
  56.  
  57. void product(int arr[], int sum_elements)
  58. {
  59.     int i = 0;
  60.     for( ; i < MAX_ELEMENTS; i += 2)
  61.         arr[i] *= sum_elements;
  62. }
  63.  
  64. void print_arr(int arr[])
  65. {
  66.     int i = 0;
  67.     for( ; i < MAX_ELEMENTS; ++i)
  68.         printf("%d => %d \n", i, arr[i]);
  69. }

Объяснение кода листинга программы

Код представлен на языке C и выполняет следующие действия:

  1. Инициализация массива: В функции init генерируются случайные значения для четных элементов массива, так что они становятся нечетными. Это делается для того, чтобы в последующем при умножении четных элементов на сумму этих элементов, полученная сумма была больше 200.
  2. Нахождение суммы элементов массива: В функции sum происходит итерация по всем элементам массива и суммируются те элементы, которые меньше 100 или больше 200.
  3. Умножение четных элементов массива на сумму этих элементов: В функции product происходит итерация по всем элементам массива с шагом 2 (то есть только для четных индексов) и умножение каждого четного элемента на сумму элементов, найденную в функции sum.
  4. Печать массива до и после умножения четных элементов на сумму этих элементов: В функции print_arr происходит итерация по всем элементам массива и их печать. Это позволяет увидеть исходный массив и массив после умножения четных элементов на сумму этих элементов. Список действий:
  5. Инициализация массива
  6. Нахождение суммы элементов массива
  7. Умножение четных элементов массива на сумму этих элементов
  8. Печать массива до и после умножения четных элементов на сумму этих элементов

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы