Загрузка данных


Вот рабочий вариант программы. Он считает нули в нечётных столбцах, если нумеровать их с 1: в 1-м, 3-м, 5-м и т. д.

#include <iostream>
#include <vector>

int countZerosInOddColumns(const std::vector<std::vector<int>>& matrix) {
    int count = 0;

    // Индексы 0, 2, 4 соответствуют столбцам 1, 3, 5
    for (std::size_t column = 0; column < (matrix.empty() ? 0 : matrix[0].size());
         column += 2) {
        for (std::size_t row = 0; row < matrix.size(); ++row) {
            if (matrix[row][column] == 0) {
                ++count;
            }
        }
    }

    return count;
}

int main() {
    int rows, columns;
    std::cin >> rows >> columns;

    if (rows <= 0 || columns <= 0) {
        std::cout << "Размеры матрицы должны быть положительными.\n";
        return 1;
    }

    std::vector<std::vector<int>> matrix(rows, std::vector<int>(columns));

    for (int row = 0; row < rows; ++row) {
        for (int column = 0; column < columns; ++column) {
            std::cin >> matrix[row][column];
        }
    }

    std::cout << countZerosInOddColumns(matrix) << '\n';
    return 0;
}


Например, для матрицы

3 3
0 5 0
2 0 7
0 1 4


проверяются 1-й и 3-й столбцы, а результат будет 3.

Ошибки в исходном коде, судя по снимку, могли возникнуть из-за нарушенного синтаксиса — например, пропущенных скобок или ;; последующие сообщения компилятора часто появляются уже вслед за первой такой ошибкой. Стандарт C++17 для этой версии программы не обязателен.