在调用函数时将值存储在数组中 我是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
通常是一个不错的选择。