Задача Найти сумму четных элементов массива.
Поскольку в программе должна осуществляться проверка на четность элементов, элементы массива должны быть целыми числами. Количество элементов в условии задачи не указано, поэтому в программе будет введено пользователем. Сами элементы массива также заполняет пользователь. Проверка на четность каждого элемента в цикле осуществляется путем сравнения остатка от деления на 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
26
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
#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;
delete []mas;
cin.get(); cin.get();
return 0;
}
Результат выполнения

2
3
4
5
6
7
8
9
10
using namespace std;
int main() {
int sum=0, n=0, *nums;
cin >> n;
nums = new int[n];
for (int i = 0; i < n; i++) cin >> nums[i];
for (int i = 0; i < n; i++) if (nums[i] % 2 == 0) sum += nums[i];
cout << sum;
}
а как найти количество четных элементов в динамическом массиве???
В 20 строчке переменную увеличивать на 1
Немного дополнил код нахождением суммы нечётных чисел)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using namespace std;
int main() {
setlocale(0, "RU");
int arr[] = { 0 }, a, c_sum = 0, n_sum = 0;
cout << "Введите количество цифр: ";
cin >> a;
for (int i = 0; i < a; i++) {
cout << "arr[" << i << "] = ";
cin >> arr[a];
if (arr[a] % 2 == 0) {
c_sum += arr[a];
}
else {
n_sum += arr[a];
}
}
cout << "Сумма всех чётных чисел: " << c_sum << endl;
cout << "Сумма всех нечётных чисел: " << n_sum << endl;
}
2
sum += mas[i];
проще и приличнее для Си проверять не заканчивается ли число на 0 в двоичной с.с.
<pre>
2
sum += mas[i];
</pre>
Да, согласна с Вашим способом. Я тоже люблю использовать побитовые операции.
Но многие считают такую проверку на чётность более сложной для понимания.
Кроме того, нахождение остатка от деления — более универсальный способ, поскольку позволяет определить кратность любому числу.
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();
}