Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在调用函数时将值存储在数组中 我是C++新手。我必须通过方程计算一个值,并在每次调用函数时存储该值。我创建了一个大小为10的数组,并计算了myValue,然后尝试存储该值。这样做对吗?每次调用函数时,它都会计算并存储myValue,并在下一次调用中使用该值n[i-1]来计算我的值n[i]。假设在第一次调用中,myvalue为0.5。在下一次调用中,它将是myValue=(1-0.3)*0.5。它将在10个调用中存储所有10个值,并使用最后存储的值计算myValue。当我编译它时,它没有显示任何错误,但我仍然有疑问 static double CalculatemyValue(Node* ch) { float gamma=0.3; double myValue = 0.0; int n[10]; int i = 0; n[i] = myValue; myValue = ((1-gamma)*n[i-1]) //previous value return myValue; }_C++_C++11_Visual C++ - Fatal编程技术网

在调用函数时将值存储在数组中 我是C++新手。我必须通过方程计算一个值,并在每次调用函数时存储该值。我创建了一个大小为10的数组,并计算了myValue,然后尝试存储该值。这样做对吗?每次调用函数时,它都会计算并存储myValue,并在下一次调用中使用该值n[i-1]来计算我的值n[i]。假设在第一次调用中,myvalue为0.5。在下一次调用中,它将是myValue=(1-0.3)*0.5。它将在10个调用中存储所有10个值,并使用最后存储的值计算myValue。当我编译它时,它没有显示任何错误,但我仍然有疑问 static double CalculatemyValue(Node* ch) { float gamma=0.3; double myValue = 0.0; int n[10]; int i = 0; n[i] = myValue; myValue = ((1-gamma)*n[i-1]) //previous value return myValue; }

在调用函数时将值存储在数组中 我是C++新手。我必须通过方程计算一个值,并在每次调用函数时存储该值。我创建了一个大小为10的数组,并计算了myValue,然后尝试存储该值。这样做对吗?每次调用函数时,它都会计算并存储myValue,并在下一次调用中使用该值n[i-1]来计算我的值n[i]。假设在第一次调用中,myvalue为0.5。在下一次调用中,它将是myValue=(1-0.3)*0.5。它将在10个调用中存储所有10个值,并使用最后存储的值计算myValue。当我编译它时,它没有显示任何错误,但我仍然有疑问 static double CalculatemyValue(Node* ch) { float gamma=0.3; double myValue = 0.0; int n[10]; int i = 0; n[i] = myValue; myValue = ((1-gamma)*n[i-1]) //previous value return myValue; },c++,c++11,visual-c++,C++,C++11,Visual C++,在给定的代码中 static double CalculatemyValue(Node* ch) { float gamma=0.3; double myValue = 0.0; int n[10]; int i = 0; n[i] = myValue; myValue = ((1-gamma)*n[i-1]) //previous value return myValue; } …数组n是一个局部自动变量。每次执行到达声明时,它都会重新创建,当执行离开块时,它

在给定的代码中

static double
CalculatemyValue(Node* ch)
{ 
float gamma=0.3;
double myValue = 0.0;
   int n[10];
   int i = 0;
   n[i] = myValue;
   myValue = ((1-gamma)*n[i-1]) //previous value
   return myValue;
}
…数组
n
是一个局部自动变量。每次执行到达声明时,它都会重新创建,当执行离开块时,它会被销毁。两次通话之间不保留任何信息


在调用之间保留状态的一个好方法是使函数成为类的成员函数,其数据成员构成要保留的状态,例如:

class Power_sequence
{
private:
    double   gamma_;
    double   value_;
public:
    auto gamma() const -> double { return gamma_; }

    void advance() { value_ *= 1 - gamma_; }
    auto current() const -> double { return value_; }

    auto next()
        -> double
    {
        double const result = current();
        advance();
        return result;
    }

    Power_sequence( double const gamma = 0.3 )
        : gamma_( gamma )
        , value_( 1.0 )
    {}
};
Power_sequence seq;
for( int i = 1; i <= 42; ++i )
{
    cout << seq.next() << endl;
}
…您会这样使用它:

class Power_sequence
{
private:
    double   gamma_;
    double   value_;
public:
    auto gamma() const -> double { return gamma_; }

    void advance() { value_ *= 1 - gamma_; }
    auto current() const -> double { return value_; }

    auto next()
        -> double
    {
        double const result = current();
        advance();
        return result;
    }

    Power_sequence( double const gamma = 0.3 )
        : gamma_( gamma )
        , value_( 1.0 )
    {}
};
Power_sequence seq;
for( int i = 1; i <= 42; ++i )
{
    cout << seq.next() << endl;
}
电源顺序顺序;

对于(int i=1;我很难理解您需要做什么,但听起来您可能需要一个
静态
局部变量。非常感谢大家。这个代码会存储所有42个值吗?因为我的下一步是找出所有存储值中的最大值。这个代码只存储最新的记录ent值。您可以修改以存储所有值。任何您想要的。对于存储动态数量的值而言,
std::vector
通常是一个不错的选择。