Как найти сумму чётных элементов одномерного массива?
Пусть дан:одномерный массив, содержащий целые числа. Выполнить следующие действия: Найти сумму четных элементов, попадающих в заданный интервал, включая границы интервала. Ноль не учитывать. Если четных элементов нет, вывести сообщение об этом. ? = 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 шт):
Сравните
if (mas[i] % 2 == 0) // проверка на четность
sum += mas[i];
k++;
и
if (mas[i] % 2 == 0) { // проверка на четность
sum += mas[i];
k++;
}
Видите разницу? (и свою ошибку)