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 :

programme deviner un nombre


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 23
    Par défaut programme deviner un nombre
    Bonjour j'aurais besoin d'aide pour mon programme, voici l'exercice :

    Ecrire un algorithme qui choisi au hasard un nombre entre 1 et 100 mais ne l'affiche pas. Pour trouver le nombre secret le programme n'indique que "trop petit";"trop grand". A la fin de la partie le programme affiche "gagné".

    J'ai deja commencer a l'élaboration du programme ce qui donne sa :

    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
    #include <stdio.h>
    #include <stdlib.h>
     
    void Rand(){
    int R;
    R == rand()%100;
    scanf("%d", &R);
    }
     
    int main(){
    int N;
    int R;
    printf("Entrez un nombre :");
    scanf("%d", &N);
     
    Rand();
     
    if (N<Rand());
    else if (printf("TROP PETIT \n"));
     
    if (N>Rand());
    else if (printf("TROP GRAND \n"));
     
    if (N=Rand());
    else if (printf("GAGNER \n"));
     
    return 0;
    }
    mais voila en compilant le programme j'ai un message d'érreur affichant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    In function ‘main’:
    rand.c:18: error: void value not ignored as it ought to be
    rand.c:21: error: void value not ignored as it ought to be
    rand.c:24: error: void value not ignored as it ought to be
    j'aimerais pouvoir résoudre ce petit problème si cela est possible

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 151
    Billets dans le blog
    4
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void Rand(){
    int R;
    R == rand()%100;
    scanf("%d", &R);
    }
    Il y a beaucoup à dire sur le reste du code également, mais commence par être logique avec toi-même et écrire la fonction que tu vas utiliser correctement.

    Comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f (N<Rand());
    else if (printf("TROP PETIT \n"));
    - Comparer un int à un void ?!
    - pourquoi un else if ? un simple else ne suffit pas ?

    A cela, ajoutons qu'il s'agit de code C et non C++.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    les erreurs sont due au fait que dans ton test "if" tu compare un avec un .

    d'autre part le code est faux.

    je te suggére plutôt ce code:

    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main ()
    {
     
      int iScret, idevine;
     
      /* initialisation du rand */
      srand ( time(NULL) );
     
      /* generer nombre secret : */
      iScret = rand() % 100 + 1;
     
      do {
     
    		printf ("devinez le nombre: ");
    		scanf ("%d",&idevine);
     
    		if (iScret<idevine) puts ("Trop grand");
     
    		else if (iScret>idevine) puts ("Trop petit");
     
    	} while (iScret!=idevine);
     
      puts ("Gagne");
      return 0;
    }
    sa vient de la référence c++.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 23
    Par défaut
    Merci pour votre aide , je vais tester et voir ce que sa donne

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 23
    Par défaut
    Alors voila, suite aux réponse que j'ai pu recevoir, je suis arriver a ce programme :


    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main(){
    int N;
    int D;
     
    srand(time(NULL));
    N = rand() %5+1;
     
    do{
    printf("Choississez un nombre entre 0 et 10 :");
    scanf("%d", &D);
     
    if (N<D);
    else (printf("TROP PETIT \n"));
     
    if(N>D);
    else (printf("TROP GRAND \n"));
     
    }while (N!=D);
    printf("GAGNER \n\n");
    return 0;
    }
    mais voila , quand je trouve le chiffre "mystère" cela ne m'affiche pas que GANER , mai sa m'affiche TROP PETIT , TROP GRAND et GAGNER !
    J'aimerai bien pouvoir afficher que GAGNER au final mai je ne trouve aucun moyen :/ si quelqu'un aurait une solution a me proposer s'il vous plait .

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 151
    Billets dans le blog
    4
    Par défaut
    Tu devrais sérieusement relire les premiers paragraphes d'un cours/livre à propos de syntaxe du langage.
    Tes if/else sont faux, et ce que tu décris est l'exacte représentation du code que tu donnes.

    Rappel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if (condition)
    {
      // ici la condition est vraie
    }
    else if (condition 2)
    {
      // ici condition 2 est vraie (ce qui implique que condition était faux)
    }
    ...
    else
    {
      // ici aucune des conditions ci-dessus n'est vraie
    }
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 23
    Par défaut
    Bah personnelement, je suis actuellement en BTS SIO première anné, on a jamais vu d'autre syntaxe que ceux la , on nous a jusquau maintenant appris que cela.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 151
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par nabil_cube Voir le message
    sa vient de la référence c++.
    Ce code est donné dans un bouquin "référence C++" ?
    - puts -> std::cout
    - scanf -> std::cin
    - stdio.h, stdlib.h -> iostream
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Programme qui devine le nombre auquel vous pensez (VBA)
    Par Ihaveadream dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 26/12/2012, 13h05
  2. Réponses: 9
    Dernier message: 08/01/2012, 17h57
  3. Programme détectant les nombres premiers
    Par frankthechamp dans le forum Windows Forms
    Réponses: 8
    Dernier message: 04/12/2008, 22h41
  4. programme python : conversion nombre en chaine de caracteres
    Par koala_64 dans le forum Général Python
    Réponses: 6
    Dernier message: 02/11/2007, 21h10
  5. algorithme pour programmation linéare en nombre entier
    Par kious dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 03/05/2006, 09h17

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