奇怪的输出?

sha*_*ama -2 c output

我是C.Sc课程的新手,我们被教授C课程.

我正在尝试一些基本的东西.目前我正在学习用户定义的功能.

以下代码是我尝试过的代码.我知道这很简单,但我无法理解为什么会产生如此奇怪的输出.

#include <stdio.h>

int add(int a); //function declaration

int main (void)

{
    int b,sum;
    printf("\nEnter a number: ");
    scanf("%d", &b);

    sum = add(b); //function calling

    printf("\nSum: %d\n\n", sum);

}

int add(int a) //function definition    

{
    int result;
    for(int i = 0; i < a; i++)

    {
        result = result + i;
        return result;

    }


} 
Run Code Online (Sandbox Code Playgroud)

1的输出是32743

2的输出是32594

3的输出是32704

奇怪的是每次输出更改为相同的数字.

考虑到我在C.Sc.的经历,这很奇怪.直到约会.请解释一下该计划正在做什么.

这是发布此类问题的正确位置.对?

kal*_*ran 5

你忘了初始化结果.

int result = 0;
Run Code Online (Sandbox Code Playgroud)

说明:如果你没有初始化变量,它将有一个"随机"数字,然后你将获得"随机"输出

另外:如果a = 0或negatif数,你也忘了返回一些东西!而你的主要需要返回一个int.

此外,没有必要进行循环,因为你返回它内部,你总是在循环中返回0.

以下是对代码的更正:

#include <stdio.h>

int add(int a); //function declaration

int main (void)
{
    int b,sum;

    printf("\nEnter a number: ");
    scanf("%d", &b);

    sum = add(b); //function calling

    printf("\nSum: %d\n\n", sum);

    return 1;
}

int add(int a) //function definition    
{
    int result = 0;
    for(int i = 0; i < a; i++)
    {
        result = result + i;
    }

    return result;
} 
Run Code Online (Sandbox Code Playgroud)

以10为输入:https://ideone.com/6BjM6y