我正在使用一个随机数生成函数,并且可以正常工作,但是我需要重置一个函数变量nSeed
,并在范围内发生if
时让函数重新启动,比如说nSeed=5323
。
当int 5323
时如何将其返回到其起始值a%16==0
?我不确定该怎么做。
这是一个例子:
unsigned int PRNG()
{
static unsigned int nSeed = 5323;
nSeed = (8253729 * nSeed + 2396403);
return nSeed % 32767;
}
int main()
{
int count=0;
int a=3;
int b=5;
while(count<1000)
{
count=count+1;
a=a+b;
cout<<PRNG()<<endl;
if(a%16==0)
{
nSeed= 5323; //here's the problem, "Error nSeed wasn't
//declared in the scoop"
}
}
}
最佳答案
首先,您需要了解变量的范围。在您的情况下,main不知道什么是nSeed
,因为它在该函数的外部声明。在两个不同的函数nSeed
和main
中引用PRNG()
时,请将其声明为全局变量。
在头文件之后声明static unsigned int nSeed = 5323;
。将其移出PRNG()
关于c++ - 当范围内发生条件时,如何重置函数中的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49070636/