Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Не работает рекурсивная функция - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ to C converter (OOP C) http://www.cyberforum.ru/cpp/thread1846824.html
Всем привет! Не встречал ли кто подобного конвертера, который может код на языке высокого уровня конвертировать в Си-шный код (плохочитаемый, для выкладки в качестве опенсорца для любопытных и для...
C++ H323Plus + PTLib: PDU Read Error: Timed Out на приемном канале Здравствуйте товарищи, помогите кто чем может разобраться с ошибкой. Анамнез: Есть самописная софтина которая должна осуществлять телефонную связь с удаленным терминалом по протоколу H.323. При... http://www.cyberforum.ru/cpp/thread1845334.html
Структура с не известными переменными C++
Добрый вечер. Допустим есть структура (не моя) с некоторыми переменными. Можно ли сделать свою структуру, но, при этом заранее указать переменным этой структуры нужное смещение? Пример: ...
C++ Стандарт C++ вышел на русском
Небезызвестный Евгений Зуев выполнил таки свое обещание и перевел Стандарт. Книжка доступна только (настолько мне известно) здесь. Цена кусается, мнения у всех по этому вопросу разные. Смотрите...
C++ Как разреженную матрицу перевести в формат CRS? http://www.cyberforum.ru/cpp/thread1843709.html
Привет кодеры! Моя задача заключается в том чтобы перемножить две разреженные матрицы. Но для того чтобы это сделать нужно эти матрицы привести к виду CRS. Я весь день а то и два не могу понять как...
C++ Как пишут программы благодаря которым можно управлять объектами? Как пишут программы при помощи которых можно управлять предметами у себя дома? Например, когда кто-то откроет холодильник, придет сообщение на смартфон или компьютер о том то что холодильник был... подробнее

Показать сообщение отдельно
Епифан
0 / 0 / 0
Регистрация: 10.11.2016
Сообщений: 2

Не работает рекурсивная функция - C++

10.11.2016, 13:12. Просмотров 218. Ответов 1
Метки (Все метки)

У меня есть поле 80 на 80 клеток, с препятствиями. Функция должна в отдельный массив записавыть в соответствующую клеточку число, означающее, за сколько ходов туда можно добраться из начальных координат. Если в if приписать && n<3, то она работает, но в маленьком радиусе, если больше тройки число поставить, то уже не работает, никак не могу понять, в чем дело.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
void search(int x, int y, int n) 
    {
        
    if (x>-1 && x<80 && y>-1 && y<80 && gg[x][y]==0)
    {
        int h;
        h=n+1;
        if(x-1>-1 && x-1<80 && (gg[x-1][y]==0 || qq[x-1][y]>n))
        {
            qq[x-1][y]=n;
            search(x-1,y,h);
        }
        if(x+1>-1 && x+1<80 && (gg[x+1][y]==0 || qq[x+1][y]>n))
        {
            qq[x+1][y]=n;
            search(x+1,y,h);
        }
        if(y+1>-1 && y+1<80 && (gg[x][y+1]==0 || qq[x][y+1]>n))
        {
            qq[x][y+1]=n;
            search(x,y+1,h);
        }
        if(y-1>-1 && y-1<80 && (gg[x][y-1]==0 || qq[x][y-1]>n))
        {
            qq[x][y-1]=n;
            search(x,y-1,h);
        }
    }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru