main()
{
int i;
srand((int)time(NULL));
for(i = 0; i < 10; i++)
printf("%f\n", randomInRange(0, 100)); // %f instead of %d
}
int randomInRange(int lo, int hi)
{
double d = (double)rand() / ((double)RAND_MAX + 1);
int k = (int)(d * (hi - lo + 1));
return k+lo;
}
使用 %d 打印值时,效果很好
,但是如果我选择 %f 而不是 %d,它只会生成 0
为什么?