C语言 递归三角形

67up9zun  于 2022-12-22  发布在  其他
关注(0)|答案(1)|浏览(188)

我有一个作业从我的uni在那里我必须打印一个三角形使用递归在C语言。我已经尝试写我的代码如下,但我不能找到我的错误。亲切的人可以指出我必须编辑的地方。

int tri(int x, int org);
int dreick(int x) {
    return tri(x,x);
}
int tri(int x,int org) {
    if (x == 0) {
        return 0;
    }
    else {
        return (x - 1, org);
    }
    for (int i = 0; i < (org - x); i++) {
        printf("");
    }
    for (int j = 0; j <= x; j++) {
        printf("*");
    }printf("\n");

}


int main() {
    int a = dreick(5);
    printf("%d",a);
}
n53p2ov0

n53p2ov01#

递归的工作原理如下:每个步骤接收一个参数,该参数指定了还需要做什么工作;如果不需要做任何工作,则返回而不做任何事情;否则,它将执行一个步骤的工作,然后使用指定要执行的剩余工作的参数的新值来调用自身。
在您的情况下,指定仍需执行哪些工作的参数可以是行号。
三角形打印代码可以在递归之外打印顶部(第0行的一颗星星)和底部(第N行的一排星),这样可以使事情变得简单。使用递归打印从1到N-1的每一行文本。
在递归的每一步中,打印一些空格、一个星号、更多的空格,然后再打印一个星号。空格的数量取决于行号。(您在三角形中的深度。)当达到N-1时,您就完成了。

相关问题