输出上的随机数

时间:2015-12-29 13:02:18

标签: c++ function

我是C ++的初学者,目前我正在学习如何做功能。最近我收到了以下练习:

#include <iostream> 
#include <string> 
using namespace std; 

int main(int argc, char* argv[]) 
{ 
    int a,sum=0; 
    cout<<"Enter a number:"; 
    cin>>a; 

    int func(int x);
    sum=func (a );

    cout<<"\n"<<sum;
}

int func(int a)
{
    int x;
    for (int i=0; i<=a; i++)
    {
        x+=i;   
    }
    return x;      
} 

我已经提前给了代码的int主要部分,我需要做的是完成int func部分,以便代码正确执行。如果我运行此代码,我只会得到一些随机数。 func应该做的是返回由用户估算的数量限制的所有自然数的总和。你能告诉我如何更改这段代码才能正常工作?感谢您的任何反馈!

3 个答案:

答案 0 :(得分:5)

<强>错误:

int x未初始化,因此会导致undefined behavior,而x将为您提供任意随机值,而不是正确的总和。

可能的解决方案:

在对变量x进行任何增量之前,请将其初始化为零,以确保它仅包含您要存储的值。

更新代码:

int func(int a)
{
    int x = 0; //updated statement

    for (int i=0; i<=a; i++)
    {
        x+=i;   
    }
    return x;      
} 

希望这有帮助。

答案 1 :(得分:2)

您必须在 func 正文

中初始化 x
.Parameters.Clear

答案 2 :(得分:1)

int x未初始化。因此导致未定义的行为(这就是你得到随机数的原因)。你必须使用其中一个来初始化它:

int x=0;
int x(0);
int x{0};