C Multiple Func() printf - 没有理由

问题描述 投票:0回答:1

我有一个简单的学习功能:

#include<stdio.h>

void func1(int i){
    
    if(i == 6) return; // Base Case
    printf("%d ", i);
    func1(i + 1);
    printf("\nEnd1");
}

int main()
{
    func1(1); // *
    return 0;
}

  1. func1() *没有输入。

  2. 我继续收到: 这个输出(!!!?): 1 2 3 4 5 结束1 结束1 结束1 结束1 结束1

  3. 终端没有错误

$ cd "/e/Prog_Lang/Module/" && gcc recur_pnt1_5.c -o recur_pnt1_5.exe && "/e/to Prog_Lang/Module/"recur_pnt1_5.exe 输出.txt e5-4bdc-b5e2-716617ce55ca XXXXXXX@XXXXXXXXXXX MINGW64 /e/Prog_Lang/Module 17(主)


  • 预期输出: 1 2 3 4 5 结束1

我不知道我能尝试解决什么问题。 有什么想法吗?

c function loops recursion output
1个回答
0
投票

您没有获得预期的输出,因为代码使用的逻辑不支持该输出。请注意

func1()
逻辑上的小变化:

#include<stdio.h>

void func1(int i)
{
    
    if(i == 6) 
    {
        printf("End1\n");
        return; 
    }
    printf("%d ", i);
    func1(i + 1);
}    

int main()
{
    func1(1); // *
    return 0;
}

输出:

    1 2 3 4 5 End1
© www.soinside.com 2019 - 2024. All rights reserved.