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 :

Prog trouver un nombre !!!


Sujet :

C

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de wareq
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    257
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 257
    Par d�faut Prog trouver un nombre !!!
    Bonjour,

    je souheterais faire un programme pour trouver un nombre , je vous donne ce que j'ai fait , car il y a des erreurs pouvez vous me les corriger ?
    Le voici :
    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>
    #define f() fflush (stdout)
     
    int main()
    {
    	int i,a,b;
    	do{
    	printf("Choisir un nombre entre 0 et 100 : \n");
    	scanf("%d",&a);
    	}while(a<=0 || a>=100);
     
    	{
    		printf("Entrer un nombre : \n");f();
    		scanf("%d",&b);
     
    		if (a<b)
    			printf("Trop grand : \n");f();
    		else
    		{
    			if (a>b)
    			printf("Trop petit : \n");f();
    		}
     
    	}
    	printf("Bravo,vous avez trouvé : \n");
     
    	return(0);
    }

    Merci a vous...

    PS: Les accolades ne tombent pas comme il faut lors du copier coller mais vous comprendrez..

    [Merci d'utiliser les balises Code et non pas les balises Citation - gangsoleil]

  2. #2
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    A mon avis, en recopiant tu as du oublier un do ... while(a != b), car on ne boucle pas
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  3. #3
    Mod�rateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber S�curit�
    Inscrit en
    Mai 2004
    Messages
    10 150
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Manager / Cyber S�curit�

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par d�faut Re: Prog trouver un nombre !!!
    Bonjour,

    Ton code �tant tr�s mal indent�, il y a des probl�mes que tu n'as probablement pas vu.

    C'est notamment le cas au niveau du if, comme le montre un compilateur bien r�gl� (j'ai nomm� ton prgramme test.c) :
    > gcc -Wall -pedantic -ansi -O2 test.c
    test.c: In function `main':
    test.c:18: parse error before "else"
    test.c:6: warning: unused variable `i'
    test.c:24: warning: control reaches end of non-void function
    test.c: At top level:
    test.c:25: parse error before string constant
    test.c:25: warning: type defaults to `int' in declaration of `printf'
    test.c:25: warning: conflicting types for built-in function `printf'
    test.c:25: ISO C forbids data definition with no type or storage class
    >
    VOici ton code indent� de facon correcte :
    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
     
    #include <stdio.h>
    #define f() fflush (stdout)
     
    int main()
    {
    	int i,a,b;
    	do{
    	printf("Choisir un nombre entre 0 et 100 : \n");
    	scanf("%d",&a);
    	}while(a<=0 || a>=100);
     
    	{
    		printf("Entrer un nombre : \n");
          f();
    		scanf("%d",&b);
     
    		if (a<b)
    			printf("Trop grand : \n");
             f();
    		else
    		{
    			if (a>b)
    			printf("Trop petit : \n");
             f();
    		}
     
    	}
    	printf("Bravo,vous avez trouvé : \n");
     
    	return(0);
    }
    Ton probl�me se situe ici :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if (a<b)
    	printf("Trop grand : \n");
    f();
    else
    Ton else ne correspond � aucun if. Si tu veux ex�cuter plusieurs instructions suite � un test, il faut absolument faire un bloc d'instructions, ce qui se d�clare en C avec des accolades :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    if (a<b)
    {
    	printf("Trop grand : \n");
       f();
    }
    else
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les r�gles du forum

  4. #4
    Mod�rateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber S�curit�
    Inscrit en
    Mai 2004
    Messages
    10 150
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Manager / Cyber S�curit�

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par d�faut
    Ah oui, tu as aussi un probl�me de conception dans ton code, puisque celui-ci ne boucle pas comme tu le voudrais :

    Il boucle sur la premi�re saisie, si on saisie un nombre en dehors des bornes, mais il manque une autre boucle (et la sortie de boucle �galement) qui permet de continuer tant que le nombre n'a pas �t� trouv�.

    Dernier point : scanf est d�conseill�, sauf dans certains cas particuliers. Le site d'Emmanuel Delahaye te fournira de nombreux conseils tr�s utiles sur la saisie : http://emmanuel-delahaye.developpez.com
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les r�gles du forum

  5. #5
    Membre �clair� Avatar de wareq
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    257
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 257
    Par d�faut
    Voici avec quelques corrections
    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>
    #define f() fflush (stdout)
     
    int main()
    {
    	int i,a,b;
    	do{
    	printf("Choisir un nombre entre 0 et 100 : \n");
    	scanf("%d",&a);
    	}while(a<=0 || a>=100);
     
     
    	{
    		printf("Entrer un nombre : \n");f();
    		scanf("%d",&b);
     
    		if (a<b)
    		{
    			printf("Trop grand : \n");f();
    		}
    		else
    		{
    			if (a>b)
    			printf("Trop petit : \n");f();
    		}
     
    	}
    }

    Je ne comprend pas ou situer la boucle par contre... et il trouve des erreurs ligne 6 dans le int et dans la derniere acolade ligne 28..

  6. #6
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Pose-toi la question en faisant tourner le prog � la main, c'est assez facile.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  7. #7
    Membre �clair� Avatar de wareq
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    257
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 257
    Par d�faut
    Je sais qu'il faut utiliser un for mais c'est tout..

  8. #8
    Mod�rateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber S�curit�
    Inscrit en
    Mai 2004
    Messages
    10 150
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Manager / Cyber S�curit�

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par d�faut
    Pour le probl�me sur ton code, des r�ponses t'ont �t� apport�es.

    Le code que tu as post� n'est pas encore correct :
    > gcc -Wall -pedantic -ansi -O2 test.c
    test.c: In function `main':
    test.c:6: warning: unused variable `i'
    test.c:28: warning: control reaches end of non-void function
    Tu n'utilises pas la variable i, donc pas la peine de la d�clarer.
    Le type de retour de main est int, il faut donc que ton programmes retourne une valeur, ce qui se fait via "return".

    Pour ce qui est du probl�me de conception de l'algorithme, le bon forum est le forum "algorithme", pas le forum C.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les r�gles du forum

  9. #9
    R�dacteur/Mod�rateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par d�faut
    Citation Envoy� par wareq
    Je sais qu'il faut utiliser un for mais c'est tout..
    Absolument pas, tu dois boucler tant que l'utilsateur n'a pas trouv�, donc ...
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas �tre meilleur que les autres, il faut �tre meilleur que soi." Albert Jacquard
    "Ceux qui savent o� ils ont pos� leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, �a vous changera les id�es !
    Ma page Prolog
    Mes codes sources comment�s

    Mon avatar : La Madeleine � la veilleuse de Georges de La Tour

  10. #10
    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 Re: Prog trouver un nombre !!!
    Citation Envoy� par wareq
    je souheterais faire un programme pour trouver un nombre , je vous donne ce que j'ai fait , car il y a des erreurs pouvez vous me les corriger ?
    Remarques et commentaires (-ed-). [En retard, suite � coupure de courant...)]
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    #include <stdio.h>
     
    /* -ed-
       #define f() fflush (stdout)
       Non. Obfuscation inutile.
       De plus, fflush() stdout est inutile apres un "\n".
     
       <a href="http://emmanuel-delahaye.developpez.com/notes.htm" target="_blank">http://emmanuel-delahaye.developpez.com/notes.htm</a>
     
       suppression
     */
     
    int main ()
    {
       int
       /* -ed-
          i,
     
          variable non utilisee...
     
        */
         a, b;
       do
       {
          printf ("Choisir un nombre entre 0 et 100 : \n");
     
          /* -ed-
             fonction de saisie extremement fragile,
             surtout quand elle est mal utilisee...
     
             (tape 'a<enter>', pour voir...)
     
             <a href="http://emmanuel-delahaye.developpez.com/notes.htm" target="_blank">http://emmanuel-delahaye.developpez.com/notes.htm</a>
             <a href="http://emmanuel-delahaye.developpez.com/notes.htm" target="_blank">http://emmanuel-delahaye.developpez.com/notes.htm</a>
     
           */
          scanf ("%d", &a);
          /* -ed-
             si tu y tiens, il faut tester la valeur retournee et agir en
             consequence ...
           */
       }
     
       /* -ed-
          pas coherent. Tu demande 0 a 100 et tu n'acceptes
          que 1 a 99... Revoir le test.
        */
       while (a <= 0 || a >= 100);
     
       {
          printf ("Entrer un nombre : \n");
          scanf ("%d", &b);
     
          if (a < b)
             printf ("Trop grand : \n");
          else
          {
             if (a > b)
                printf ("Trop petit : \n");
          }
     
       }
       printf ("Bravo,vous avez trouvé : \n");
    /* -ed-
     manque une boucle quelque part... avec un compteur d'essais,
     (le fameux i non utilise ?)
     */
     
     
    /* -ed-
       return (0);
       
       parentheses inutiles (return n'est pas une fonction)
     */
     
       return 0;
    }
    Pose des questions si tu ne comprends pas.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Trouver le nombre de mots
    Par acik59 dans le forum C
    R�ponses: 13
    Dernier message: 06/06/2007, 23h11
  2. R�ponses: 10
    Dernier message: 14/04/2007, 18h57
  3. [d�butant]Trouver des nombres premiers
    Par S�bastien L dans le forum Langage
    R�ponses: 17
    Dernier message: 19/10/2006, 12h21
  4. R�ponses: 7
    Dernier message: 20/07/2006, 10h29
  5. Trouver le nombre de handle utiliser par un programme
    Par chuckboy dans le forum Windows
    R�ponses: 1
    Dernier message: 19/12/2005, 23h38

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