为打印星星创建递归函数

时间:2014-03-19 11:23:26

标签: c

这是我用来打印三角形星星的递归函数。出现了一些问题,循环无限运行。帮助我。

#include<stdio.h>
int n;
void star(int x,int y)
{
    if(x>y) {
        printf("*");
        star(x,++y);
    } else if(x<=n) {
        // x <= y and x <= n
        printf("*\n");
        star(++x,0);
    }
}
void main()
{
    printf("Enter the number of lines to be printed: ");
    scanf("%d",&n);
    star(0,0);
}

1 个答案:

答案 0 :(得分:0)

你缺少一名后卫,并结束了这个循环。你打电话给star(0,0),它将无限期地运行......

你必须将scanf中收到的参数传递给函数并执行for循环以运行传递给方法的行数或星号。