Мне нужно создать случайное целое число в пределах определенного пользователем диапазона. Он должен использовать одну переменную для хранения результата вызова функции и просто обновлять переменную при каждом вызове.Необходимо создать случайное целое число в пределах заданного диапазона
Функция, которая использует вход для генерации случайных чисел:
int genRandInt (int smallnum, int bignum) {
int randnum = smallnum + (rand() % (bignum - smallnum + 1));
return randnum;
}
Основная функция:
int main()
{
srand(time(NULL));
int smallnum;
int bignum;
int z = genRandInt(smallnum, bignum);
cout << "Enter the smallest possible number: ";
cin >> smallnum;
cout << "Enter the biggest possible number: ";
cin >> bignum;
genRandInt(smallnum, bignum);
cout << "Random number: " << z << endl;
genRandInt(smallnum, bignum);
cout << "Random number: " << z << endl;
genRandInt(smallnum, bignum);
cout << "Random number: " << z << endl;
return 0;
}
Программа работает, но он продолжает возвращаться три из того же числа, ни один из которых находятся в пользовательском диапазоне. Например, для выполнения каждого вызова функции диапазон 10 и 100 возвращает 267499385.
Какие-нибудь идеи, что здесь не так? Я очень ржавый.
EDIT: Заменено первоначальное определение int z = genRandInt(smallnum, bignum);
int z;
. Затем я заменил три вызова функций на z = genRandInt(smallnum, bignum);
, и теперь он работает нормально. Это правильно? Или есть лучший способ сделать это?
EDIT2: Кажется, что это хороший способ сделать это. Всем спасибо.
Заменено первоначальное определение 'int z = genRandInt (smallnum, bignum);' с 'int z;'. Затем я заменил три вызова функций на 'z = genRandInt (smallnum, bignum);' и теперь он работает нормально. Это правильно? Или есть лучший способ сделать это? –