Nombre aléatoires en c

Résolu
Bonjour,
comment peut-on générer des nombres aleatoires en c.
j'ai utilisé ran(99) pour générer des nombres entre 0 et 98 et le compilateur me sort un error"extra parameter "
Configuration: Windows XP
Firefox 2.0.0.9

7 réponses

  1. voici le cod et l'erreur se trouve dan void expérience(derniere partie) matté pluto

    #include<math.h>
    #include<stdlib.h>
    #include<stdio.h>
    #include<conio.h>
    int n; float p; int numero[100]; float genere[100]; int gain[100]; int cumule[100];

    void main()
    {int i;void aide(void);void jouer(void);
    entree :
    clrscr();
    printf("\t\t\t JEUX : LES LANCERS DE PIECES\n\t\t ------------------------------\n\n");
    printf("___________________________________\n| | |\n");
    printf("| 1 | JOUER |\n| | |\n");
    printf("-----------------------------------\n| | |\n");
    printf("| 2 | AIDE |\n| | |\n");
    printf("-----------------------------------\n| | |\n");
    printf("| 3 | SORTIR |\n| | |\n");
    printf("-----------------------------------\n\n");

    do {
    printf("\t\tENTRER UN CHIFFRE SELON LE TABLEAU PRECEDANT : ");
    scanf("%d",&i); }
    while(i!=1&&i!=2&&i!=3);
    switch(i)
    { case 1 : jouer();
    break;
    case 2 : aide();printf("\nAppuyer sur n'importe quelle touche pour revenir au menu principal\n");
    getch(); goto entree;
    case 3 : goto sortie;
    }
    scanf("%d",&i);
    sortie : ;
    }
    void aide(void)
    {clrscr();
    printf("\t\t\t\tAIDE\n\t\t\t ------\n\n");
    printf("Ce programme est un jeu qui consiste a la simulation d'un lancer de piece.\nVous devez entrer la probabilit‚ d'avoir pile et le nombre de lancer a effectuer.\nLorsque vous obtenez pile votre gain augmente de 1DH, dans le cas contraire ");
    printf("il diminue de 1 DH.");
    }
    void jouer(void)
    {void experience(void);
    clrscr();
    printf("Entrer le nombre de lancers a effectuer\t");
    scanf("%d",&n);
    do {
    printf("Entrer la probabilit‚ d'obtenir un pile(comprise entre ]0,1[)\t");
    scanf("%f",&p); }
    while((p<=0)||(p>=1));
    experience();
    }

    void experience(void)
    {int i,j;
    printf("\n\n\t\t\t1er LANCER\n Appuyer sur une touche pour lancer la piece. ");
    getch();genere[0]=(rand(99)+1)/100;
    if(genere[0]<p) {gain[0]=-1; printf("\nVous avez obtenu un face. Vous perdez 1DH");}
    else {gain[0]=1; printf("\nVous avez obtenu pile. Vous gagnez 1DH");}
    cumule[0]=gain[0];
    for(i=1;i<n;i++)
    {
    printf("\n\n\t\t\t%dieme LANCER\nAppuyer sur une touche pour lancer la piece. ",i+1);
    getch();genere[i]=(rand(99)+1)/100;
    if(genere[i]<p) {gain[i]=-1; printf("\nVous avez obtenu un face. Vous perdez 1DH");}
    else {gain[i]=1; printf("\nVous avez obtenu pile. Vous gagnez 1DH");}
    cumule[i]=cumule[i-1]+gain[i];
    }
    printf("\n\n----------------------------------------------------------------------\n");
    printf("EXPERIENCES | GAIN | GAIN TOTAL |\n");
    for(j=0;j<n;j++)
    {
    printf("----------------------------------------------------------------------\n");
    printf("EXPERIENCE %d | %d | %d |\n",j+1,gain[j],cumule[j]);
    }
    printf("----------------------------------------------------------------------\n");

    if (cumule[n-1]<=0) printf("Vous avez perdu %d dirham(s).",cumule[n-1]);
    else printf("Vous avez gagn‚ %d dirham(s).",cumule[n-1]);
    }
    0
    1. c'est pas la bonne syntaxe....
      pour generer un nombre entre 0 et 98
      srand(time(NULL));
      nb=rand()%99;
      0
      1. thank you very much on essai et on te tien au couran
        0
        1. commen faire pour generer des nombres entre ]0,1[?
          0
          1. tu declares une variable d'abord en float
            float nb;

            ensuite
            nb=(float) rand() /RAND_MAX;
            1
            1. ça marche san faute.mai pour le doublon c'etai pour jouer la carte de la précision (rires)merci
              0
              1. ok pas de souci
                mets ton post en resolu si tu n'as plus de probleme ;)
                0