递归将如何?

时间:2019-04-11 05:41:49

标签: c++11

我有一个带“ 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)

所以我在逻辑上陷入了递归中。请给我一些建议。欣赏。

0 个答案:

没有答案