gpt4 book ai didi

c - 奇怪的输出?

转载 作者:行者123 更新时间:2023-11-30 19:54:03 25 4
gpt4 key购买 nike

我是 C.Sc 类(class)的新手,我们教授的是 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;

}


}

The output for 1 is 32743

The output for 2 is 32594

The output for 3 is 32704

奇怪的是,每次相同的数字输出都会发生变化。

考虑到我在 C.Sc. 的经历,这很奇怪。到目前为止。请解释一下该程序在做什么。

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

最佳答案

您忘记初始化结果。

int result = 0;

说明:如果你不初始化变量,它将有一个“随机”数字,然后你将得到“随机”输出

另外:如果 a = 0 或负数,您还忘记返回一些内容!你的主要需要返回一个 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;
}

以 10 作为输入的示例:https://ideone.com/6BjM6y

关于c - 奇怪的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42838280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com