La función
int rand (); declarada en
<stdlib.h> te regresa un número pseudo-aleatoreo entre 0 y RAND_MAX, donde RAND_MAX es una constante definida en
<stdlib.h>. Si quieres un número aleatoreo entre 0 y 1, sólo tienes que dividir el número que te regresa la función
rand () entre RAND_MAX (teniendo en cuenta convertir alguno de los operandos de la división al tipo
double o
float, de lo contrario se efectúa una división entera truncando los decimales). Te muestro un ejemplo:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main ()
{
int i;
srand (time (NULL));
printf ("\n");
for (i = 0; i < 20; i++)
printf ("%g\n", rand() / ((double)RAND_MAX));
return EXIT_SUCCESS;
}