• Как решить ошибку переполнения массива?

    @soloveid
    Так по куску кода непонятно что происходит.
    Для начала замени
    if (a != 0)
    на
    if (a > 0 && a < SIZE - 1 )

    И сообщи о результате.
    Ответ написан
    1 комментарий
  • Как решить эту ошибку?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Перепишите этот ужас с нуля. Там невозможно найти ошибку.

    Советую воспользоваться тем, что условные операторы вычисляются лениво: Если написать A && B и A окажется false, то B даже не будет вычисляться.

    Так, проверка на клетку сверху может быть написана так:
    if (i > 0 && a[i-1][j] - мина)

    Так вся ваша простыня выродится в 8 последовательных проверок. Если меняются обе координаты, то надо через && объединить 3 условия - 2 на проверку невыхода за границы массива, и последнее - проверка значения массива.

    Еще можно завести массив на SIZE+2 x SIZE+2 и заполнять его с (1, 1). Фактически, создается каемка вокруг исходного массива. И пробегаться по нему надо от 1 до SIZE. Так, вокруг всегда будут все 8 соседей. В этом подходе не придется проверять на выход за границы массива.

    А еще можно вместо 8 if-ов сделать цикл на 8 итераций, если завести константы для приращений:
    const int kDx[] = {1, 1, 1, 0, -1, -1, -1, 0};
    const int kDy[] = {1, 0, -1, -1, -1, 0, 1, 1};


    Теперь всех соседей можно перебрать как (i + kDx[k], j + kDy[k])
    Ответ написан
    Комментировать
  • Что писать в "README.md" (GitHub)?

    megakor
    @megakor
    Go/PHP developer | Вконтакте
    Каких-то правил нет.

    Обычно указывают:
    1. Установка
    2. Описание
    3. Документация
    4. Авторы
    5. Лицензия

    Ваш репозиторий - ваши правила, делайте как хотите.
    Ответ написан
    Комментировать