IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Char au hasard?


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 54
    Par défaut Char au hasard?
    je me demander comment je pourais faire pour que le pc choisisse entre ses caractére la au hassard (* , /, - et +)?

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Tu génères un nombre aléatoire entre 1 et 4 et tu fait correspondre par exemple dans un switch-case un numéro avec un de tes caractères !
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Salut,

    ...et pour obtenir un nombre aléatoire entre 0 et N, la est ton amie:
    http://c.developpez.com/faq/c/?page=..._random_bornes

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #4
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Franck.H
    Tu génères un nombre aléatoire entre 1 et 4 et tu fait correspondre par exemple dans un switch-case un numéro avec un de tes caractères !
    Il serait plus simple d'avoir un tableau de caracteres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char tokens[] = { '*', '/', '+', '-' };
    et te tirer l'indice au hasard.

  5. #5
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Citation Envoyé par DaZumba
    Il serait plus simple d'avoir un tableau de caracteres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    char tokens[] = { '*', '/', '+', '-' };
    et te tirer l'indice au hasard.
    Heu oui exact
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par conceicao
    je me demander comment je pourais faire pour que le pc choisise entre ses caracté ci au hassard (* , /, - et +)?
    • Définir un tableau de 4 char initialisé avec les caractères en question
    • Tirer un nombre pseudo-aléatoire entre 0 et 3 (srand(), rand()) FAQ
    • Utiliser ce nombre comme indice pour lire le caractère dans le tableau
    • Apprendre le français.
    Fait de ton mieux et poste ton code.

  7. #7
    Membre Expert
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Par défaut
    Citation Envoyé par conceicao
    caracté
    Désolé, mais ça me fait super rire

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 54
    Par défaut
    tu rigole pour un rien toi mdrrrr , c'est un erreur de frappe!

    tu doit pas t'embeter le soir , a la place d'une bonne comedie , tu viens ici non? mdrrr

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par conceicao
    c'est un erreur de frappe!
    Alors tu as le droit de te relire et de te corriger :

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 54
    Par défaut
    bon voila j'ai essayer de faire ca comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    char operateur (long int nombre1 , long int nombre2) 
    /*-----------------------------------------------*/
    {
    long int resultat ;                   
    long int MAX;
    long int MIN;
    long int operateur ;
    char car = ' ' ;
    gotoxy (4, 1);printf("%ld %c %ld = ",nombre1,car,nombre2);
    operateur = (rand() % (4 - 0 + 1));
    {
     if (operateur == 1)  {
             car = '+';
             resultat = nombre1 + nombre2;
             } 
     
     if (operateur == 2)  {
             car = '-';
             resultat = nombre1 - nombre2;
             } 
     
     if (operateur == 3)  {
             car = '*';
             resultat = nombre1 * nombre2;
             } 
     
     if (operateur == 4)  {
             car = '/';
             resultat = nombre1 / nombre2;
             } 
     
     if (operateur == 5)  {
             car = '%';
             resultat = nombre1 % nombre2;
             } 
     
    return resultat ;
    }
     
    }

    mais ce n'est surement pas correct car j'obtient des lettres bizarres a la place des opérateur :{

    quelqu'un vois c'est quoi mon erreur?

    PS: je n'ai pas utiliser la méthode que vous m'avez parlez car je ne l'ai pas encore apris.Merci d'avance

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Août 2003
    Messages
    878
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 878
    Par défaut
    Bonsoir,

    Citation Envoyé par conceicao
    bon voila j'ai essayer de faire ca comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    char operateur (long int nombre1 , long int nombre2) 
    /*-----------------------------------------------*/
    {
    long int resultat ;                   
    long int MAX;
    long int MIN;
    long int operateur ;
    char car = ' ' ;
    gotoxy (4, 1);printf("%ld %c %ld = ",nombre1,car,nombre2);
    operateur = (rand() % (4 - 0 + 1));
    {
     if (operateur == 1)  {
             car = '+';
             resultat = nombre1 + nombre2;
             } 
     
     if (operateur == 2)  {
             car = '-';
             resultat = nombre1 - nombre2;
             } 
     
     if (operateur == 3)  {
             car = '*';
             resultat = nombre1 * nombre2;
             } 
     
     if (operateur == 4)  {
             car = '/';
             resultat = nombre1 / nombre2;
             } 
     
     if (operateur == 5)  {
             car = '%';
             resultat = nombre1 % nombre2;
             } 
     
    return resultat ;
    }
     
    }

    mais ce n'est surement pas correct car j'obtient des lettres bizarres a la place des opérateur :{

    quelqu'un vois c'est quoi mon erreur?
    Quelle erreur ? AMHA, il y en a plusieurs. La première d'entre elles étant :
    - d'utiliser un compilateur ne donnant aucun avertissement ;
    OU
    - de désactiver l'affichage avertissements ;
    OU
    - de ne pas lire les avertissements donnés par le compilateur.

    Indice : un "long int" n'est pas un "char".

    Citation Envoyé par conceicao
    PS: je n'ai pas utiliser la méthode que vous m'avez parlez car je ne l'ai pas encore apris.Merci d'avance
    C'est peut-être l'occasion d'apprendre ?

    Cordialement,
    DS.

  12. #12
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Salut,

    Le bout de code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rand() % (4 - 0 + 1)
    renvoie un nombre entre 0 et 4 (équivalent à rand() % 5). Ce n'est pas ce que tu veux dans le code que tu as posté. Si tu veux un nombre aléatoire entre 1 et 5:
    Par ailleurs, n'oublie pas d'initialiser le générateur de nombre pseudo-aléatoires un fois avant tout appel à rand() avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #include <time.h>
    /* ... */
    srand((int) time(NULL));
    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. probleme tableau de char au hasard
    Par Asmod_D dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 26/07/2007, 21h49
  2. Réponses: 3
    Dernier message: 02/07/2003, 16h24
  3. Réponses: 6
    Dernier message: 24/03/2003, 17h11
  4. Traitement d'un char* renvoyé par une DLL en C++
    Par LuluTchab dans le forum Langage
    Réponses: 4
    Dernier message: 22/03/2003, 21h48
  5. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo