D'une part, il faut déclarer et définir dans les fichiers
  
random.h et 
random.c la fonction suivante :
  
double
rndPrecision(int decimals)
{
  // ...
}
Son rôle est de fournir un réel aléatoire dans l'intervalle semi-ouvert
  
[0.0;1.0[, ayant au maximum le nombre de décimales indiqué en
  paramètre
Par exemple :
    
- avec une décimale, le résultat sera parmi
        0.0, 0.1, 0.2 ... 0.7, 0.8
        ou 0.9,
 
- avec deux décimales, le résultat sera parmi
        0.0, 0.01, 0.02 ... 0.97, 0.98
        ou 0.99,
 
- avec trois décimales, le résultat sera parmi
        0.0, 0.001, 0.002 ... 0.997, 0.998
        ou 0.999,
 
- avec quatre décimales, le résultat sera parmi
        0.0, 0.0001, 0.0002 ... 0.9997, 0.9998
        ou 0.9999,
 
- ...
 
 
.
Elle comporte trois étapes :
- obtenir la puissance de dix correspondant au nombre de décimales
    choisi
10 pour une décimale, 100 pour deux, 1000 pour trois...
  ; la
    fonction
    mathématique standard pow() vous servira à ce propos pour calculer
    10decimals, 
- tirer aléatoirement un entier dans cette plage de valeurs
De 0 à 9 pour une décimale, de 0 à 99 pour deux,
        de 0 à 999 pour trois...
 , 
- diviser cet entier aléatoire par cette plage de valeurs pour obtenir
    un réel dans [0.0;1.0[.
 
 
D'autre part, il faut réaliser, dans le fichier 
prog_ex1001.c, cette
  fonction :
  
void
test_rndPrecision(void)
{
  printf("\n~~~~ %s() ~~~~\n", __func__);
  for(int p=1; p<=4; ++p)
  {
    printf("precision: %d\n", p);
    // ...invoquer un nombre significatif de fois rndPrecision()...
    printf("\n");
  }
}
  qui sera appelée depuis la fonction 
main().
Pour chaque précision choisie, elle doit afficher 
une séquence de
  résultats de la fonction 
rndPrecision() afin d'en constater
  l'effet.
Il faudra avoir pris soin d'initialiser le générateur pseudo-aléatoire
  afin que les séquences obtenues ne soient pas identiques à chaque
  exécution du programme.