Найти сумму четных элементов массива

Задачи и их решения / Найти сумму четных элементов массива

 

Задача Найти сумму четных элементов массива.
 
Поскольку в программе должна осуществляться проверка на четность элементов, элементы массива должны быть целыми числами. Количество элементов в условии задачи не указано, поэтому в программе будет введено пользователем. Сами элементы массива также заполняет пользователь.
Проверка на четность каждого элемента в цикле осуществляется путем сравнения остатка от деления на 2 (%2) с нулем. Четное число делится нацело без остатка.
Результатом выполнения программы является вывод на экран суммы четных элементов массива.

Реализация на С++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
using namespace std;
int main()
{
  int *mas, n, sum;
  sum = 0;
  system("chcp 1251");
  system("cls");
  cout << "Введите размер массива: ";
  cin >> n;
  mas = new int[n];
  for (int i = 0; i<n; i++)
  {
    cout << "mas[" << i << "]= ";
    cin >> mas[i];
  }
  for (int i = 0; i<n; i++)
  {
    if (mas[i] % 2 == 0) // проверка на четность
      sum += mas[i];
  }
  cout << "Сумма четных элементов массива равна " << sum;
  cin.get(); cin.get();
  return 0;
}

 
Результат выполнения
Сумма четных элементов массива


Назад: Задачи и их решения

Комментариев к записи: 7

  • 1
    2
    if (mas[i] % 2 == 0) // проверка на четность
      sum += mas[i];
    проще и приличнее для Си проверять не заканчивается ли число на 0 в двоичной с.с.
    1
    2
    if ( !(mas[i] &amp; 1) )
      sum += mas[i];

    • Елена Вставская
      Да, согласна с Вашим способом. Я тоже люблю использовать побитовые операции. Но многие считают такую проверку на чётность более сложной для понимания. Кроме того, нахождение остатка от деления - более универсальный способ, поскольку позволяет определить кратность любому числу.

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    //=========================================================
    //Программа нахождения суммы четных элементов массива
    // ========================================================
    #include "stdafx.h"
    #include <iostream>
    #include <time.h>
    #include <conio.h>
    using namespace std;
    void add(int *, int);
    int main()
    {
      setlocale(0, "rus");
      srand(time(0));
      int size; //Размер массива
      cout << "Введите количество элементов:";
      cin >> size;
      int *massive = new int[size]; //Создание массива
      add(massive, size);// Вызов функции заполнения подсчета и вывода
      return 0;
    }
    //============================================================
    //Функция заполнения массива случайными числами, подсчета
    //и вывода суммы четных элементов
    //============================================================
    void add(int *massive, int size)
    {
      int sum = 0; //Сумма нечетных элементов
      for (int counter = 0; counter<size; counter++)
      {
        massive[counter] = rand() % 10;//В текущую ячейку массива записываем случайное число от 0 до 9
        cout << massive[counter] << endl;//Выводим массив на консоль
        if (massive[counter] % 2 == 0) //Проверка на четность
          sum = sum + massive[counter];
      }
      cout << endl << "Сумма нечетных элементов равна = " << sum << endl;
      _getch();
    }


  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
      
    #include <iostream>
    #include <conio.h>
    using namespace std;
    int main() {
      int summary = 0;
      int array[10];
      for (int i(0); i < size(array);i++) {
        cin >> array[i];
        if (array[i] % 2 == 0) {
          summary += array[i];
        }
      }
      cout << summary;
      _getch();
    }

  • Рациональнее было бы использовать один и тот же цикл, как для заполнения так и для проверки массива на четность.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *