luanshils 发表于 2020-2-20 09:05

求助一个C语言递归的问题

本帖最后由 luanshils 于 2020-2-20 09:17 编辑


void digui(int num)
{
      if (num <= 0)
      {
                printf("停止\n");
                return ;
      }
      else
      {
                printf("执行\n");
                return digui(--num);//明白了,弄错变量了
      }
}


void main()
{
      digui(1);
      getchar();
}



总结出几个问题,一个是变量弄错了,num弄成 n了,然后自减应为前自减,否则如果是后自减会死循环

ll996075dd 发表于 2020-2-20 09:13

    # include <stdio.h>
    void Func(int n);//函数声明
    int main(void)
    {
      int n;
      printf("想输出几个我爱你:");
      scanf("%d", &n);
      Func(n);
      return 0;
    }
    void Func(int n)
    {
      if (n > 0)
      {
            printf("i love you\n");
            Func(n-1);
      }
      else
      {
            return ;
      }
    }
请参考这个

luanshils 发表于 2020-2-20 09:14

本帖最后由 luanshils 于 2020-2-20 09:27 编辑

15797909155 发表于 2020-2-20 09:13
# include
    void Func(int n);//函数声明
    int main(void)

好的,收到

ll996075dd 发表于 2020-2-20 09:14

n没有定义,不是变量

luanshils 发表于 2020-2-20 09:15

15797909155 发表于 2020-2-20 09:14
n没有定义,不是变量

应该是我弄错了变量,我再试试

ll996075dd 发表于 2020-2-20 09:15

你定义的是一个num

luanshils 发表于 2020-2-20 09:16

15797909155 发表于 2020-2-20 09:15
你定义的是一个num
生疏了,有时候定义的是num,自己心里想的是n
谢谢

Dream_G 发表于 2020-2-20 10:04

15797909155 发表于 2020-2-20 09:13
# include
    void Func(int n);//函数声明
    int main(void)


解释好清楚

ll996075dd 发表于 2020-2-20 10:09

Dream_G 发表于 2020-2-20 10:04
解释好清楚

写好注释是每个程序员应该做的事

Derrick92 发表于 2020-2-20 10:18

谢谢分享!!
页: [1]
查看完整版本: 求助一个C语言递归的问题