二进制表达式的操作数无效(' double'和' double')

时间:2015-03-21 07:10:39

标签: c++

// RETURNS A RANDOM ELEMENT rho=[0,N-1] BASED ON FITNESS
int roulette_wheel(double fitness[], int N){
double f_sum=0.0, r, F, temp;
int k=0;
for (int j=0; j<N; N++) {
    f_sum=fitness[j];
}
r=rand()%f_sum+1.0; //(invalid operands to binary expression ('double' and 'double'))
F=1.0/fitness[k];
while (F<r) {
    k++;
    F=F+1.0/fitness[k];
}

return k;
}

我不知道为什么那部分会说无效的操作数...我认为我的代码是正确的。

1 个答案:

答案 0 :(得分:0)

再次重申上述评论以澄清: 您不能在浮点数上使用模数。

然而,一个名为fmod()的函数可以为您提供两个浮点数的余数。