Генератор случайных чисел в диапазоне от 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(), что означает успешный конец работы программы.