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 :

probl�mes d'ex�cution du programme


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    10
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Alg�rie

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 10
    Par d�faut probl�mes d'ex�cution du programme
    Bonjour,
    je veux �crire un algorithme qui sert a deviner un nombre nd.
    voici qu'est ce que j'ai �crit:
    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
    #include<stdio.h>
    #include<conio.h>
    int main(void)
    {
    int n,i=1,nd=256 ;
    printf(" Devinez un nombre entier compris entre 0 et 1000\n ") ;
    scanf(" %d ",&n) ;
    while(n!=nd)
    {
    if(n<nd) printf("Trop Petit\n");
    else printf("Trop Grand\n");
    i=i+1;
    scanf("%d",&n);
    }
    if (i=1) printf("BRAVO ! tu as reussit a trouver le nombre a deviner des le premier essai! "); 
    else{if (i<=10) printf(" BRAVO ! tu as trouve le nombre a deviner après %d essays ",i);
            else printf(" tu es un peu lent, tu as trouve le nombre a deviner après %d essais ",i) ;                                                                                   
    }
    getch();
    }
    mais lors de l'ex�cution, le programme s'affiche comme suit:
    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
    Devinez un nombre entier compris entre 0 et 1000
     100
    150
    Trop Petit
    Trop Petit
    200
    Trop Petit
    300
    Trop Grand
    250
    Trop Petit
    280
    Trop Grand
    250
    Trop Petit
    255
    Trop Petit
    256
    BRAVO ! tu as reussit a trouver le nombre a deviner des le premier essai!
    voil�,
    Le premier essai (100) apparait sans connaitre est-ce qu'il est trop grand ou trop petit.
    Malgres que j'ai essaye 9 fois il affiche " BRAVO ! tu as reussit a trouver le nombre a deviner des le premier essai! "
    J'ai essaye de connaitre est-ce qu'il y a une incrementation de i en introduisant " printf("i vaut %d",i)" apres la boucle, alors sa valeur a change.
    pourriez-vous m'aider ?
    Merci d'avance...

  2. #2
    Expert confirm�
    Avatar de Melem
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    printf(" Devinez un nombre entier compris entre 0 et 1000\n ") ;
    scanf(" %d ",&n);
    Remplace " %d " ("<espace>%d<espace>") par "%d" ("<rien>%d<rien>").

  3. #3
    Membre habitu�
    Profil pro
    Inscrit en
    D�cembre 2008
    Messages
    10
    D�tails du profil
    Informations personnelles :
    �ge : 35
    Localisation : Alg�rie

    Informations forums :
    Inscription : D�cembre 2008
    Messages : 10
    Par d�faut probl�me
    Bon�oir,
    Merci beaucoup Mr Melem, �a marche tr�s bien maintenant sauf que le desi�me probl�me n'est pas r�gl� ( le i ne s'incr�mente pas ).

  4. #4
    Nouveau candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par d�faut
    Arf l'erreur est toute b�te:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if (i=1) printf("BRAVO ! tu as reussit a trouver le nombre a deviner des le premier essai! "); 
    else{if (i<=10) printf(" BRAVO ! tu as trouve le nombre a deviner après %d essays ",i);
            else printf(" tu es un peu lent, tu as trouve le nombre a deviner après %d essais ",i) ;                                                                                   
    }
    Quand tu fais:
    tu mets i � 1.

    Pour comparer i � 1, il faut faire:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if (i==1) printf("BRAVO ! tu as reussit a trouver le nombre a deviner des le premier essai! "); 
    else{if (i<=10) printf(" BRAVO ! tu as trouve le nombre a deviner après %d essays ",i);
            else printf(" tu es un peu lent, tu as trouve le nombre a deviner après %d essais ",i) ;                                                                                   
    }
    Pour �viter ce genre d'�tourderie, on peut mettre la valeur avant la variable et faire le test comme suit:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if (1==i) printf("BRAVO ! tu as reussit a trouver le nombre a deviner des le premier essai! "); 
    else{if (i<=10) printf(" BRAVO ! tu as trouve le nombre a deviner après %d essays ",i);
            else printf(" tu es un peu lent, tu as trouve le nombre a deviner après %d essais ",i) ;                                                                                   
    }
    comme �a, si on ne mets qu'un =, le compilateur remonte l'erreur.

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 2
    Par d�faut
    En plus, quand tu fais

    tu mets i � 1, et le test se fait sur la valeur de i.
    0 �tant faux et toutes les autres valeurs �tant vraies, le premier test est valid�... Donc on rentre dans le bloc suivant le if.

    ne pas oubliez:
    -d'indenter,
    -le compilateur est notre ami, facilitons-lui la vie,
    -le d�buggeur est notre deuxi�me ami

  6. #6
    Membre chevronn� Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Par d�faut
    perso j'utiliserai pas printf et scanf.... C'est bien pour le C, mais la on est en C++ si je me gourre pas trop de forum...
    alors je dis pr�f�rer std::cout et std::cin....

Discussions similaires

  1. Probl�me pour ex�cuter le programme
    Par Ashleycole dans le forum VB 6 et ant�rieur
    R�ponses: 1
    Dernier message: 05/09/2010, 23h09
  2. probl�me d'ex�cution de programme utilisant cimg
    Par maissaab dans le forum D�buter
    R�ponses: 1
    Dernier message: 27/06/2010, 21h30
  3. Probl�me d'ex�cution des programmes sous Qt-Creator
    Par fraisa1985 dans le forum Linux
    R�ponses: 2
    Dernier message: 23/03/2010, 11h09
  4. probl�me d'ex�cution de programme sans delphi install�
    Par bouha2008 dans le forum D�buter
    R�ponses: 13
    Dernier message: 09/06/2009, 16h08
  5. R�ponses: 4
    Dernier message: 06/03/2008, 19h50

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