c - 创建用于打印星星的递归函数

标签 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);
}

最佳答案

您缺乏后卫,并结束了周期。您调用star(0,0),它将不确定地运行...

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

关于c - 创建用于打印星星的递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22504273/

相关文章:

c - 异步模式下的Linux串口读取

c - 无法从 .txt 文件中获取信息并将其放入 C 中的 .csv 文件中

c - 正在重新分配的指针未分配

c++ - 禁用 fork 进程的标准输出缓冲

c - execlp 在另一个终端执行

c - 开发 GUI 并加载引导加载程序库

c++ - 字符串到 float 的转换?

c++ - 在任意数据类型上使用 <algorithm> 库

c - 在另一个目录中查找目录

c - 在 C 中打印字母金字塔