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

Рекурсивная функция - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка undefined reference to `PlaySoundA@12' ld returned 1 exit status http://www.cyberforum.ru/cpp-beginners/thread766286.html
простите за название темы, но форум не дает мне назвать ее "проблемы с PlaySound".. постоянно ошибку дает что запрещено использовать русские и английские буквы в слове. #include <Windows.h> #include <mmsystem.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static char...
C++ Проверить, является ли слово перевертышем Дано слово. Проверить, является ли оно перевертышем (перевертышем називается слово, читаемое одинаково как с начала, так и с конца) http://www.cyberforum.ru/cpp-beginners/thread766284.html
Игрушка Танчики C++
у меня есть 1 свой танк, 2 вражеских. и сейчас если один вражеский попадет в другого вражеского, то подстреленный исчезает и выходит конец игры. как обработать событие чтобы вражеские не могли друг друга убивать? void Field::moveShots() { for (int i = 0; i < bullets.size(); i++) { Bullet *pb; pb = dynamic_cast <Bullet*> (bullets); QRegion region =...
Составить блок-схему алгоритма для подсчета количества работников C++
Составить блок-схему алгоритма для подсчета количества работников, которые имеют с 1 по 5 разряд, если известны разряды каждого работника предприятия.
C++ Компиляция серьезной графики под Mingw http://www.cyberforum.ru/cpp-beginners/thread766184.html
Возьмем для примера gdi+ (c всем остальным у меня получалось абсолютно тоже. только winapi из windows.h пока могу) пишу элементарный пример, когда довожу его до компиляции, на стадии линковки компилятор чего-то не видит. простой код не привожу, так как пока не спрашиваю "как написать на gdi+ что-то работающее" а спрашиваю "как в mingw вообще хоть что-то с gdi+ откомпилировать"?
C++ Написать функцию, которая вычисляет объём и площадь поверхности цилиндра. Входными данными являются радиус цилиндра и его высота Написать функцию, которая вычисляет объём и площадь поверхности цилиндра. Входными данными являются радиус цилиндра и его высота подробнее

Показать сообщение отдельно
Ryk
0 / 0 / 0
Регистрация: 19.03.2012
Сообщений: 20
Завершенные тесты: 1
19.01.2013, 17:12  [ТС]     Рекурсивная функция
Вот, что получается
Кликните здесь для просмотра всего текста

Исходная матрица:
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 0 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000
Преобразованная:
80 65 64 63 50 49 36 35 22 21
79 64 63 62 49 48 35 34 21 20
78 65 0 61 50 47 36 33 22 19
77 66 1 60 51 46 37 32 23 18
76 67 2 59 52 45 38 31 24 17
75 68 3 58 53 44 39 30 25 16
74 69 4 57 54 43 40 29 26 15
73 70 5 56 55 42 41 28 27 14
72 71 6 7 8 9 10 11 12 13
73 72 7 8 9 10 11 12 13 14
Для продолжения нажмите любую клавишу . . .

Используя вот этот код
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void Front(int **arr, const int m, const int sx, const int sy)
{   
    if(sx==9) return;
    if(sy==10) return;
    if(sx==0) return;
    if(sy==-1) return;
 
    if((arr[sx+1][sy]==1000)&&(sx+1<m)&&(sy<m)){arr[sx+1][sy]=arr[sx][sy]+1;Front(arr,m,sx+1,sy);}
//  Front(arr,m,sx+1,sy);
 
 
    if((arr[sx][sy+1]==1000)&&(sx<m)&&(sy+1<m)){arr[sx][sy+1]=arr[sx][sy]+1;Front(arr,m,sx,sy+1);}
//  Front(arr,m,sx,sy+1);
 
    if((arr[sx-1][sy]==1000)&&(sx-1>=0)&&(sy>=0)){arr[sx-1][sy]=arr[sx][sy]+1;Front(arr,m,sx-1,sy);}
//  Front(arr,m,sx-1,sy);
 
    if((arr[sx][sy-1]==1000)&&(sx>=0)&&(sy-1>=0)){arr[sx][sy-1]=arr[sx][sy]+1;Front(arr,m,sx,sy-1);}
//  Front(arr,m,sx,sy-1);
}

И как видно, это не то, что мне нужно. Вероятно нужно ставить условие перед вызовом рекурсии, но никак не пойму какое. по сути надо бы сравнивать был ли я в этой точке или нет, если был, то не вызывать, но я сначала посещаю точку и меняю в ней значение.
 
Текущее время: 03:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru