C3861 идентификатор не найден C++ ошибка компиляции

Я только только начал изучать C++, вообще как слепой котенок, поэтому, пожалуйста, если можно- простыми словами, простите заранее...

Задача- нарисовать поле для "сапера". Я нахожусь на этапе отладки. Завел функцию, которая располагает мину на поле, и функцию, которая печатает поле. Пока пытаюсь расположить одну мину и вывести на экран поле. Вот код:

#include <iostream>
#include <vector>
#include <string>



int main() {

    int rows_nb = 5, collumns_nb = 4;
    std::vector<std::vector<int>> field(rows_nb, std::vector<int>(collumns_nb, 0));
    std::vector<int> mine1 = { 1, 0 };

    field = place_mine(field, mine1);
    print_field(field, rows_nb, collumns_nb);

    return 0;
}


std::vector<std::vector<int>> place_mine(std::vector<std::vector<int>> field, std::vector<int> mine_coords) {

    if (field[mine_coords[0]][mine_coords[1]] == -1) {
        return field;
    }
    else {
        field[mine_coords[0]][mine_coords[1]] = -1;
        for (int i = mine_coords[0] - 1; i <= mine_coords[0] + 1; i++) {
            for (int j = mine_coords[1] - 1; i <= mine_coords[1] + 1; j++) {
                if ((i == mine_coords[0] and j == mine_coords[1]) or (i < 0 or j < 0)) {
                    continue;
                }
                else {
                    field[i][j] = field[i][j] + 1;
                }
            }
        }
    }

    return field;
}


void print_field(std::vector<std::vector<int>> field, int rows_nb, int collumns_nb) {

    for (int i = 0; i != rows_nb; i++) {
        for (int j = 0; j != collumns_nb; j++) {
            std::cout << field[i][j];
            if (j != collumns_nb) {
                std::cout << " ";
            }

        }
        if (i != collumns_nb) {
            std::cout << "/n";
        }
    }
}

При компиляции возникают ошибки, которые на пишутся в отладчик. Подскажите пожалуйста, как отдебажить так, что б понять в чем ошибка? И в чем же заключается эта ошибка? Мой IDE- visual studio открытая версия не помню какая, качал пару месяцев назад (наверно последняя).


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

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

Ошибки возникают из-за того, что функции объявлены после того, как вызываются в коде.

Для решения можно воспользоваться одним из способов:

  • Перенести объявление функций в начало программы, до их вызова, т.е. до функции main
  • Добавить перед функцией main прототипы функций, которые объявлены ниже.
→ Ссылка