Exclure nombre d'un rand

Résolu
spriatez Messages postés 205 Statut Membre -  
 Utilisateur anonyme -
Bonjour,

Je suis à la recherche d'un script qui pourrait exclure certaines valeurs d'un random.

Voici mon code :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int random_mot(){
    int hasard;
    int mot;
    int total=1;
    char reseau = 1;
    char code = 2 ;
    char dico = 3;
    char donnee = 4;
    char ordinateur = 5;

    time_t t;
    srand((unsigned) time(&t));


    while(total<=10)
    {
        hasard = rand() % 5+1;
        if (hasard == 1)
        {
            printf("Reseau\n");
        }

        else if (hasard == 2)
        {
            printf("code\n");
        }

        else if (hasard == 3)
        {
            printf("dico\n");
        }

        else if (hasard == 4)
        {
            printf("donnee\n");
        }

        else if (hasard == 5)
        {
            printf("code\n");
        }

        ++total;
    }

    return 0;
}



J'ai trouvé quelques trucs, mais en PHP..

Nous pensions à un tableau, mais nous ne savons pas non plus comment exclure ou bien supprimer une case d'un tableau !

Cordialement.

1 réponse

  1. Utilisateur anonyme
     
    Salut,

    Le plus simple est de passer par un tableau d'entier. La declaration de base pourra être :


    int* tVal = new int[10];//10=> nombres de cases


    ensuite, tu pourras faire cette recherche :


    int iExists = 0;
    for(int i = 0 ; i<10 && iExists == 0 ; i++)
    {
    if( tVal[i] == hasard )
    iExists = 1;
    }


    Pour ce qui est de exclure, tu ne supprime pas vraiment la case du tableau mais tu réassigne ta valeur.

    demande si t as des questions.
    naga
    0
    1. spriatez Messages postés 205 Statut Membre
       
      Bonjour,

      merci de la rapidité de votre réponse.
      Nous allons nous pencher dessus, merci de l'aide.
      Cordialement.
      0
    2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      @nagashima,

      int* tVal = new int[10];//10=> nombres de cases
      <mode chipotage>C'est du C++, pas du C ça ;-).</mode>
      0
    3. Utilisateur anonyme
       
      arf oui x] j'ai un peu perdu l'habitude ...
      malloc
      donc ^^
      0
    4. spriatez Messages postés 205 Statut Membre
       
      Bonjour,

      Merci fiddy et Naga ! :)

      Néanmoins, j'ai pas très bien compris comment on se servait de malloc ..
      0
    5. Utilisateur anonyme
       
      et bah par exemple, si tu veux un tableau de 10 entiers, il faut que alloue une taille de 10 fois la taille d'un entier (de mémoire [et je n ai pas bne mémoire xD] 1 entier c'est 8 bit ... mais peu importe). Tu recupère la taille d'un entier avec un
      sizeof(int)


      donc ton allocation sera :

      int * tTabInt = malloc( 10 * sizeof(int) );


      Je préfèrerai qu on me confirme car je suis un peu rouillé mais voila ^^

      naga
      0