Генератор случайных чисел в диапазоне от 0 до 1 (не целых) - C (СИ)
Формулировка задачи:
Здравствуйте! Помогите пожалуйста.
Вроде весь форум просмотрела,но ответа не нашла.
Мне нужно сгенерировать случайное число в диапазоне от 0 до 1.
У меня все время выдает 0 или 1.
А если тип поставить double, то вообще одни нули выводит.
Подскажите пожалуйста, что делаю не так и как правильно.
Заранее благодарю!
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { float r; srand(time(NULL)); r=0+rand()%2; printf("%f", r); }
Решение задачи: «Генератор случайных чисел в диапазоне от 0 до 1 (не целых)»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> #define rand01() ( fabs(sin(rand())) ) int main(void) { int i; srand(time(NULL)); for ( i = 0; i < 10; ++i ) printf("%f\n", rand01()); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы со случайными числами, временем и математическими функциями.
- Определение функции
rand01()
, которая возвращает случайное число в диапазоне от 0 до 1. - Инициализация генератора случайных чисел с помощью функции
srand(time(NULL))
. - Создание цикла
for
, который выполняет генерацию и вывод 10 случайных чисел с помощью функцииprintf(
%f\n, rand01())
. - Возврат 0 из функции
main()
, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д