Генератор случайных чисел в диапазоне от 0 до 1 (не целых) - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Помогите пожалуйста. Вроде весь форум просмотрела,но ответа не нашла. Мне нужно сгенерировать случайное число в диапазоне от 0 до 1. У меня все время выдает 0 или 1.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
float r;
    srand(time(NULL));
    r=0+rand()%2;
    printf("%f", r);
}
А если тип поставить double, то вообще одни нули выводит. Подскажите пожалуйста, что делаю не так и как правильно. Заранее благодарю!

Решение задачи: «Генератор случайных чисел в диапазоне от 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы со случайными числами, временем и математическими функциями.
  2. Определение функции rand01(), которая возвращает случайное число в диапазоне от 0 до 1.
  3. Инициализация генератора случайных чисел с помощью функции srand(time(NULL)).
  4. Создание цикла for, который выполняет генерацию и вывод 10 случайных чисел с помощью функции printf(%f\n, rand01()).
  5. Возврат 0 из функции main(), что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы