C语言 任何人都能发现哪里出错了吗?编译器给出错误的结果[已关闭]

wj8zmpe1  于 2022-12-11  发布在  其他
关注(0)|答案(1)|浏览(104)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答案。

这个问题是由一个打字错误或一个无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
5天前关闭。
Improve this question

#include <stdio.h>
#include <stdlib.h>

//anadromikh synarthsh

int recursive(int n);

int main()
{   int a;
    int sum;

    printf("give a number from 1to n\n");
    scanf("%d", &a);
    sum=recursive(a);
    printf("the result is %d\n", sum);
    return 0;
}
int recursive(int n)
{
    int k;
    if (k == 1)
    {
        return 1;
    }

    else
        return (recursive(k-1)+k);
}

我把数字5举个例子。我期待的总和1+2+3+4+5=15,但编译器返回的结果像85478等,我找不到哪里出了问题。我尝试了devc/c++和在线编译器,但没有工作

ddhy6vgd

ddhy6vgd1#

这一点:

int k;
if (k == 1)
{
    return 1;
}

在代码将k1进行比较之前,k的值是什么?(提示:它可以是任何东西)。
我的超能力显示你真的想用n而不是用k

相关问题