Как найти сумму чётных элементов одномерного массива?

Пусть дан:одномерный массив, содержащий целые числа. Выполнить следующие действия: Найти сумму четных элементов, попадающих в заданный интервал, включая границы интервала. Ноль не учитывать. Если четных элементов нет, вывести сообщение об этом. ? = 8 Массив = {1, 5, 9, 6, 2, 7, 4, 3} Интервал =[2, 7] Результат = 12 n =8 Массив = {1, 5, 9, 5, 1, 7, 8, 3 } Интервал = [2, 7] Результат = таких элементов нет Вот мой код:

#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Rus");
    int* mas, n, sum;
    sum = 0;
    system("cls");
    cout << "Введите размер массива: ";
    cin >> n;
    mas = new int[n];
    int k = 0;
    int b, c;
     cout << "b="; cin >> b; //ввод диапазона
     cout << "c="; cin >> c;
     if (b > c) swap(b, c);
    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];
            k++;
    }
    if (!k) cout << "Таких элементов нет\n"; //k = 0
    else
    cout << "Сумма четных элементов массива равна " << sum;
    cin.get(); cin.get();
    return 0;
}

Почему при вот этом {1, 5, 9, 5, 1, 7, 8, 3 } [2, 7] таких элементов нет; У меня выводит количество элементов равно 8,а не то что таких элементов не существует. Помогите пожалуйста исправить мой код.


Ответы (1 шт):

Автор решения: Mikhailo

Сравните

if (mas[i] % 2 == 0) // проверка на четность
    sum += mas[i];
    k++;

и

if (mas[i] % 2 == 0) { // проверка на четность
    sum += mas[i];
    k++;
    }

Видите разницу? (и свою ошибку)

→ Ссылка