почему следующий код c выдает действительные числа только в диапазоне от 0 до 1 (например, 0,840188,0,394383 ... и т. Д.) Для double a,b
, когда значение для RAND_MAX представляется равным 0.000000
. Разве RAND_MAX
не должен устанавливать максимальное значение для числа, генерируемого функцией rand()
?
#include <stdio.h>
#include <stdlib.h>
int main()
{
double a,b,c;
for (int i=0;i<100;i++){
a=(double)rand()/(double)RAND_MAX;
b=(double)rand()/(double)RAND_MAX;
c=a-b;
printf("itteration : %d values a=%f,b=%f,c=%f, RAND_MAX=%f \n",i,a,b,c,RAND_MAX);
}
return 0;
}