У меня есть функция с циклом «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)
Так что я логически застрял в рекурсии.Пожалуйста, дайте мне совет.Цените.