Exclure nombre d'un rand

Résolu/Fermé
spriatez Messages postés 180 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 8 mai 2017 - 6 oct. 2015 à 10:33
 Utilisateur anonyme - 16 oct. 2015 à 15:12
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

Utilisateur anonyme
6 oct. 2015 à 11:18
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
spriatez Messages postés 180 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 8 mai 2017
6 oct. 2015 à 14:59
Bonjour,

merci de la rapidité de votre réponse.
Nous allons nous pencher dessus, merci de l'aide.
Cordialement.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
6 oct. 2015 à 17:18
@nagashima,

int* tVal = new int[10];//10=> nombres de cases
<mode chipotage>C'est du C++, pas du C ça ;-).</mode>
0
Utilisateur anonyme
7 oct. 2015 à 08:33
arf oui x] j'ai un peu perdu l'habitude ...
malloc
donc ^^
0
spriatez Messages postés 180 Date d'inscription lundi 6 décembre 2010 Statut Membre Dernière intervention 8 mai 2017
7 oct. 2015 à 10:29
Bonjour,

Merci fiddy et Naga ! :)

Néanmoins, j'ai pas très bien compris comment on se servait de malloc ..
0
Utilisateur anonyme
7 oct. 2015 à 11:47
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