Как будет рекурсия? - PullRequest
       2

Как будет рекурсия?

0 голосов
/ 11 апреля 2019

У меня есть функция с циклом «for», и я хочу реализовать рекурсию для замены цикла for.Однако я не могу использовать глобальные переменные, то есть 'counter', поэтому теперь я логически запутался, как я могу реализовать рекурсию.

int makeHorizontalLine(char canvas[MAX_ROW][MAX_COL], int row, int col, int length){
    int counter = 0;
    for (int i =0; i<length ; i++){
    if ((i+col) >= MAX_COL)
        return counter;
    canvas[row][i+col] = '-';
    counter += 1;
}

Это то, что я пробовал в рекурсии.

int makeHorizontalLine(char canvas[MAX_ROW][MAX_COL], int row, int col, int length){
    if (col >= MAX_COL)
        return length;
    if (length != 0){
        if (col < MAX_COL){
            makeHorizontalLine(canvas, row, col+1, length-1);
            return length;
        }


    }

Поскольку я не могу использовать глобальную переменную, поэтому я попытался назначить рекурсию, такую ​​как

makeHorizontalLine(canvas, row, col+1; length -1)

и когда длина = 0, чтобы остановить рекурсию, но я не могу вернуть то, что хочу в рекурсии, если

if ((i+col) >= MAX_COL)

Так что я логически застрял в рекурсии.Пожалуйста, дайте мне совет.Цените.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...