这是我制作的用于打印三角形星形集的递归函数。出现了一些问题,循环正在无限运行。帮我。
#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);
}
最佳答案
您缺乏后卫,并结束了周期。您调用star(0,0),它将不确定地运行...
您必须将scanf中收到的参数传递给函数,并执行for循环才能运行传递给方法的行数或星号。
关于c - 创建用于打印星星的递归函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22504273/