我有一个带“ for”循环的函数,我想实现递归以替换for循环。但是我不能使用全局变量,即'counter',所以现在我在逻辑上感到困惑,如何实现递归。
Protocol 'inet_tcp': the name my_service@localhost seems to be in use by another Erlang node
这是我在递归中尝试过的。
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;
}
}
,当length = 0时停止递归,但如果递归,我将无法返回我想要的内容
makeHorizontalLine(canvas, row, col+1; length -1)
所以我在逻辑上陷入了递归中。请给我一些建议。欣赏。