Объясните , что делает srand() ? - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
main ()
{
int a , b, seed;
//unsigned seed;
for( ; ; )
{
a = (1 + rand() % 9);
b = (1 + rand() % 9);
printf("How much is %d times %d ? \n", a, b);
scanf("%d", &seed);
//srand(seed);
if (seed == a * b)
printf("ok\n\n ");
else printf("bad, try again\n\n");
}
}Решение задачи: «Объясните , что делает srand() ?»
textual
Листинг программы
void __cdecl srand (
unsigned int seed
)
{
_getptd()->_holdrand = (unsigned long)seed;
}
int __cdecl rand (
void
)
{
_ptiddata ptd = _getptd();
return( ((ptd->_holdrand = ptd->_holdrand * 214013L
+ 2531011L) >> 16) & 0x7fff );
}
Объяснение кода листинга программы
- srand() — это функция, которая инициализирует генератор случайных чисел в языке программирования C.
- srand() принимает один аргумент — seed, который является начальным значением для генератора случайных чисел.
- srand() сохраняет seed в поле _holdrand внутри структуры _ptiddata, связанной с текущим потоком.
- rand() — это функция, которая генерирует случайное целое число.
- rand() возвращает случайное целое число в диапазоне от 0 до 32767 (0x7fff).
- rand() использует поля _holdrand и _ptiddata для генерации случайного числа.
- rand() вычисляет новое значение _holdrand, умножая текущее значение _holdrand на 214013 и добавляя 2531011, а затем сдвигает результат вправо на 16 бит.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.
- rand() возвращает новое случайное число, ограничивая его до 16-битного значения.