Problème nombre aléatoire c

salut, ce code ne compile pas !! aide moi svp
void main()
{
long int n;
srand(time(NULL));
 do
 {
     n= rand() % (1000000);
 }while(n<100000);
pirntf("%d",n);
}

2 réponses

  1. Il te faut inclure stdio.h et ton printf est mal écrit.
    Sinon, ton code ne fait pas grand chose d'intéressant, car n ne va jamais être plus grand que 100 000.
    rand() ne renvoit que des valeurs entre 0 et 32768 et le modulo que tu fais ne va rien changer à ce résultat.

    Buy a ward, stop a gank, save a life.
    Wards.
    0
    1. Contributeur
      stdio.h n'est pas suffisant

      rand() ne renvoit que des valeurs entre 0 et 32768
      32767 plutôt. Et rand() peut retourner une valeur supérieure à cette limite. Ca dépend de la machine.
      0
    2. Merci pour la précision, c'est vrai, j'ai copié le mauvais nombre. Je me suis basé sur The C Programming Language ANSI C Version. Avec mingw, stdio.h est suffisant.
      0
    3. Contributeur
      mingw n'est pas un compilateur. J'imagine que tu veux parler de gcc. Cela dépend des flags que tu as mis.
      En tout cas, il faut mettre stdio.h pour printf(), stdlib.h pour srand()/rand() et time.h pour time().
      0
  2. Contributeur
    Bonjour,

    Il faut inclure stdio.h, stdlib.h et time.h

    Ce n'est pas voir main() mais int main(voir)
    Et il ne faut pas oublier : return 0; en fin.

    Ce n'est pas pirntf mais printf. Il ne faut pas oublier de mettre un saut de ligne (\n) en fin de ligne. Ou alors faire un flush.
    => printf("%d\n",n);

    Et ton rand() retourne une valeur entre 0 et RAND_MAX. Combien vaut-il ? Il y a un vrai risque de faire une boucle infinie. Peut-être que tu devrais revoir cette condition.

    Cdlt,
    0