Николай Веселуха
Высший разум
(378062)
2 месяца назад
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
int main(void) {
int count = 10;
int value = 0;
int left = 1000;
int right = 10000;
srand((unsigned)time(NULL));
while (count != 0) {
value = RAND(left, right);
printf("%d\n", value);
--count;
}
return 0;
}
Код генерирует случайным образом 10 четырёхзначных чисел.
speexz
Мыслитель
(7585)
2 месяца назад
Проблема в том, что функция `rand()` в C всегда генерирует одно и то же значение, если вы не инициализируете генератор случайных чисел с помощью функции `srand()`. Без инициализации генератор случайных чисел использует фиксированное начальное значение (seed), которое обычно равно 1. Поэтому результат работы программы будет повторяться при каждом запуске.
Чтобы решить эту проблему, вам нужно использовать функцию `srand()` и задать seed, который меняется при каждом запуске программы. Обычно для этого используют текущую отметку времени (количество секунд с начала эпохи) через функцию `time()` из библиотеки `<time.h>`.
Исправленный код будет выглядеть так:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
short Zagadannoe_chislo;
// Инициализируем генератор случайных чисел текущим временем
srand(time(NULL));
Zagadannoe_chislo = rand() % 9001 + 999;
printf("%d\n", Zagadannoe_chislo);
return 0;
}
### Объяснение:
1. **`srand(time(NULL))`**:
- `time(NULL)` возвращает количество секунд, прошедших с 1 января 1970 года.
- Этот результат используется как начальное значение (seed) для функции `srand()`.
2. После вызова `srand(time(NULL))`, каждый запуск программы будет генерировать разные последовательности случайных чисел.
Теперь при каждом запуске программы вы получите разные значения в диапазоне от `999` до `9999`.
speexzМыслитель (7585)
2 месяца назад
Вставлю сюда:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
short Zagadannoe_chislo;
// Инициализируем генератор случайных чисел текущим временем
srand(time(NULL));
Zagadannoe_chislo = rand() % 9001 + 999;
printf("%d\n", Zagadannoe_chislo);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main() {
short Zagadannoe_chislo;
Zagadannoe_chislo = rand() % 9001 + 999;
printf("%d\n", Zagadannoe_chislo);
}