Задано n чисел. Определить, сколько среди них чётных

#include <iostream>
using namespace std;

int main() {
    int n, i = 1;
    cin >> n;
    int kol;
    kol = 1;

    for (i = 1; i <= n; i++) {
        int nums;
        cin >> nums;
        if (nums / 2 == 0) kol++;
    }
    cout << kol;

    return 0;
}

ребята, где ошибка?


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

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

здесь должен стаять знак % вместо / if (nums % 2 == 0) kol++; и переменная kol = 0

→ Ссылка
Автор решения: n1tr0xs
  1. В этой задаче нужно проверять не частное /, а остатоко от деления %.
if (nums % 2 == 0) kol++;

Можно убрать if вовсе:

kol += !(nums%2);
  1. Вы неверно инициализировали переменную kol, ведь изначально четных чисел вам не ввели, а значит их 0.
int kol = 0;

Рекомендации:

  1. Переменную nums лучше назвать num, посколько ожидается ввод одного числа, а не списка чисел.
  2. Называть переменные траслитом - плохая практика (переменную kol лучше назвать even_count).
  3. Не нужно заранее объвлять переменную i.
  4. Обычно итерируется не по [1; n], а по [0; n).
#include <iostream>
using namespace std;

int main() {
    int n, num;
    cin >> n;
    int even_count = 0;
    for (int i = 0; i < n; ++i) {
        cin >> num;
        even_count += !(num%2);
    }
    cout << even_count;

    return 0;
}
→ Ссылка