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, чтобы напечатать значение, он хорошо работает
но если я выбираю% е вместо% г, он генерирует 0 только
почему?Почему генератор случайных чисел генерирует только ноль
Символ 'float' не 'int' не является' float' ... –
Поскольку 'printf' не выполняет преобразования? Попробуйте 'printf ("% f \ n ", (float) randomInRange (0, 100));' – Pubby
Я предлагаю вам использовать '-Wformat', если он поддерживается вашим компилятором. – Will