Генератор случайных чисел на С++ (Dev C++) - C (СИ)
Формулировка задачи:
Подскажите пожалуйста, Мне нужно написать генератор случайных чисел, однако всегда генерируется одно и то же число.
Мне нужно, что бы генератор генерировал числа от 1, т.е. что бы была вероятность того, что выпадет 1 и что бы была вероятность того, что выпадет одно и то же число.
Программа каждый раз в результате выводит число 41...
Если что - пишу на Dev C++...
P.S. Вот в Pascal/Delphi была функция Random, а здесь есть ли какой то более простой способ?
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void)
{
srand(1);
int x=rand();
printf("Result = %d", x);
getch();
}Решение задачи: «Генератор случайных чисел на С++ (Dev C++)»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x = 0;
srand(time(0));
int sel;
while (1)
{
printf("Вывод случайного числа: 1 \n");
printf("В ином случае - выход из программы \n");
scanf("%d", &sel);
if (sel != 1)
break;
x = 1 + rand() % 500;
printf("Ваше случайное число = %d \n\n", x);
}
printf("Программа завершена");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со случайными числами и временем
- Объявление переменной
xдля хранения текущего значения случайного числа - Инициализация генератора случайных чисел с помощью функции
srand(time(0)), гдеtime(0)— текущее время в секундах - Объявление переменной
selдля получения выбора пользователя - Запуск цикла while(1), который будет выполняться до тех пор, пока пользователь не введет значение 1
- Вывод сообщения с предложением ввести либо 1, либо другое значение для выхода из программы
- Считывание значения
selс помощью функцииscanf(%d, &sel) - Проверка значения
selна равенство 1. Если это условие не выполняется, то происходит выход из цикла с помощью оператораbreak - Генерация случайного числа с помощью функции
rand()и операции модуля%для получения значения от 0 до 500 - Вывод сгенерированного случайного числа с помощью функции
printf(Ваше случайное число = %d \n\n, x) - После выхода из цикла while(1) выводится сообщение
Программа завершена - Возврат значения 0 для успешного завершения программы