二进制表达式的操作数无效("双精度"和"双精度")

invalid operands to binary expression ('double' and 'double')

本文关键字:双精度 无效 表达式 操作数 二进制      更新时间:2023-10-16
// 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;
}

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

为了清楚起见,再次重申上面的评论:不能对浮点数使用模。

但是,一个名为 fmod(( 的函数可以为您提供两个浮点数的剩余部分。