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ème dans mon code [Débutant(e)]


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Problème dans mon code
    bonjours
    Un petit peu d'aide serait la bienvenu. Voila je voulais savoir quel sont mes erreurs sur ma ligne de code car je n'arrive pas à le compiler
    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 nombre1 = 0, nombretape = 0;
        srand(time(0));
        nombre = (rand() % 50);
        printf("devinez le nombre\r\n");
        while (1);
    {    if (nombre1 < nombretape);
         scanf("%d") &nombretape; 
         printf("vous ètes infèrieur\r\n");
         else if (nombre1 == nombretape);
         scanf("%d") &nombretape; 
         printf("vous avez trouvé bravo\r\n");
         break;
         else (nombre1 > nombretape);
         scanf("%d") &nombretape; 
         printf("vous ètes supérieur\r\n");
    }     
    system("PAUSE");
    return 0;
    }
    [-mod- Merci de lire les règles du forum et d'apprendre à utiliser les balises de code]

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par curro Voir le message
    Un petit peu d'aide serait la bienvenu. Voila je voulais savoir quel sont mes erreurs sur ma ligne de code car je n'arrive pas à le compiler.
    Le compilateur indique les erreurs :
    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
     
    Project   : Forums
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\dev\forums\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.c
    main.c:5: warning: function declaration isn't a prototype
    main.c: In function `main':
    main.c:8: error: `nombre' undeclared (first use in this function)
    main.c:8: error: (Each undeclared identifier is reported only once
    main.c:8: error: for each function it appears in.)
    main.c:11: warning: empty body in an if-statement
    main.c:12: warning: too few arguments for format
    main.c:14: error: syntax error before "else"
    main.c:15: warning: too few arguments for format
    main.c:17: error: break statement not within loop or switch
    main.c:18: error: syntax error before "else"
    main.c:19: warning: too few arguments for format
    Process terminated with status 1 (0 minutes, 0 seconds)
    6 errors, 5 warnings
    Tu ne comprends pas l'anglais ?

    Ton code est bourré d'erreurs basiques. Je te conseille de relire tes cours.
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 109
    Points
    109
    Par défaut

    Non portable , inutile sur un edi récent (codeblocks , anjuta , etc...)
    While I breath, I hope.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par scriptoff Voir le message
    Non portable , inutile sur un edi récent (codeblocks , anjuta , etc...)
    Si il n'y avait que ça !
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    excusez moi mais que veut dire "erreur de syntaxe auparavant "else"?
    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 nombre1 = 0, nombretape = 0;
        srand(time(0));
        nombre1 = (rand() % 50);
        printf("devinez le nombre\r\n");
        while (1);
        printf("donner un nombre entre 50 et 0 : ");
        scanf("%d") &nombretape; 
    {
         printf("vous ètes infèrieur\r\n");
         if (nombre1 < nombretape);
         printf("vous avez trouvé bravo\r\n");
         else if (nombre1 == nombretape); 
         break;
         printf("vous ètes supérieur\r\n");
         else (nombre1 > nombretape);
    }     
     
    return 0;
    }
    j'ai fai quelque changement mais l'erreur apparait toujours à "else"

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par curro Voir le message
    excusez moi mais que veut dire "erreur de syntaxe auparavant "else"?
    Relis ton cours de C :
    - Il ne faut pas de ';' après une condition de structure de code
    - Il faut des {} si il y a plus d'une ligne concernée.
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Membre actif
    Homme Profil pro
    Ingénierie des systemes embarqués temps réels
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénierie des systemes embarqués temps réels
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par curro Voir le message
    excusez moi mais que veut dire "erreur de syntaxe auparavant "else"?
    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 nombre1 = 0, nombretape = 0;
        srand(time(0));
        nombre1 = (rand() % 50);
        printf("devinez le nombre\r\n");
        while (1);
        printf("donner un nombre entre 50 et 0 : ");
        scanf("%d") &nombretape; 
    {
         printf("vous ètes infèrieur\r\n");
         if (nombre1 < nombretape);
         printf("vous avez trouvé bravo\r\n");
         else if (nombre1 == nombretape); 
         break;
         printf("vous ètes supérieur\r\n");
         else (nombre1 > nombretape);
    }     
     
    return 0;
    }
    j'ai fai quelque changement mais l'erreur apparait toujours à "else"

    Essayes de te situer http://emmanuel-delahaye.developpez.com/goret.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (condition)
    {
       expression;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (nombre1 < nombretape)
    {
       printf("vous ètes infèrieur\r\n");
    }
    Relire les structures de contrôles
    la syntaxe de scanf et printf..
    Pendant 25 ans j'ai toujours cru que le soleil se levait à l'est et se couchait à l'ouest... 1/4 de siècle à remettre en cause...
    _______________________ ______________
    Systèmes embarqués RT et Informatique Industrielle.
    Conception, intégration électronique et logicielle.
    Développement des drivers ,GUI,et softs pour vos applications.
    _______
    Debian ,CentOS,Suse,Windows(xp pro,7).

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    encors quelque petit changement:
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main()
    {    
    int nombre1 = 0, nombretape = 0;
        srand(time(0));
        nombre1 = (rand() % 50);
        printf("devinez le nombre\r\n");
        while (1)
        printf("donner un nombre entre 50 et 0 : ");
        scanf("%d" &nombretape);
        if (nombre1 < nombretape)
     {    
          printf("vous ètes infèrieur\r\n");
    }
         else if (nombre1 == nombretape) 
     {    
          printf("vous avez trouvé bravo\r\n");
         break;
    }
          else (nombre1 > nombretape);
     {    
          printf("vous ètes supérieur\r\n");
      }  
     
    system("PAUSE");
    return 0;
    }
    ou faudrait il mettre le break ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    308
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 308
    Points : 373
    Points
    373
    Par défaut
    Apprends à utiliser les fonctions, regarde ton scanf() !

    Tu mets le premier argument dans la fonction, c'est bien, mais le deuxième argument se trouve après !

    c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d", &nombretape);
    et non pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    scanf("%d") &nombretape;
    Ensuite, après un else il ne faut pas de condition, le else signifie "toutes les conditions qui n'ont pas été prises en compte par les if/else if précédent"

    Et pour finir, pourquoi ne mets-tu pas comme condition de sortie de ta boucle nombretape == nombre1...

    Si tu fais comme boucle ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(nombretape != nombre1)
    Lorsque les variables seront égales, tu sortiras de la boucle, c'est plus propre et plus compréhensible qu'un break dans un else if...

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    voila super sa marche enfin! je vous remerci de votre aide je n'y orait jamais rien compris sans vous
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main()
    {    
    int nombre1 = 0, nombretape = 0;
        srand(time(0));
        nombre1 = (rand() % 50);
        printf("devinez le nombre\r\n");
     
        printf("donner un nombre entre 50 et 0 : ");
        scanf("%d", &nombretape);
     
         while(nombretape != nombre1)
     {    
          printf("vous avez trouvé bravo\r\n");
              if (nombre1 < nombretape)
     {    
          printf("vous ètes infèrieur\r\n");
    }
     
          else if (nombre1 > nombretape)
     {    
          printf("vous ètes supérieur\r\n");
      }  
     
    system("PAUSE");
    return 0;
    }}

  11. #11
    Membre régulier Avatar de B.Moncef
    Étudiant
    Inscrit en
    Août 2007
    Messages
    75
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 75
    Points : 88
    Points
    88
    Par défaut
    Ton code est faux. Tu as une accolade de plus a la fin de ton programme. et une de manquante pour fermer ton while ...

    Apprends aussi a correctement indenter et espacer ton code, parce que la ca aide franchement pas a la lecture.
    Pas de question techniques par MP

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par curro Voir le message
    encors quelque petit changement:
    <...>
    ou faudrait il mettre le break ?
    Déjà, il faudrait des {} pour délimiter la boucle while et supprimer le ';' après le else... Une fois ceci corrigé, le break que tu as mis prend son sens.
    Pas de Wi-Fi à la maison : CPL

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 104
    Points : 113
    Points
    113
    Par défaut
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
     
    int main()
    {
     
    int nombre1 = 0, nombretape = 0;
     
    	srand(time(NULL));
        	nombre1 = (rand() % 50);
     
        printf("devinez le nombre\r\n");
     
    while(nombretape != nombre1)
    {    
     
        printf("donner un nombre entre 50 et 0 : ");
        scanf("%d", &nombretape);
     
     
          if (nombre1 < nombretape)
         	{    
         	   printf("vous ètes infèrieur\r\n");
    	}
     
          else if (nombre1 > nombretape)
     	{    
               printf("vous ètes supérieur\r\n");
      	}  
    }
     
         printf("vous avez trouvé bravo\r\n");
     
    return 0;
    }
    j'aurais plutot fais comme ça mais bon ...

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 235
    Points : 134
    Points
    134
    Par défaut
    il faut prévoir une porte de sortie taper par exemple 0 pour quitter

    int main (void) C
    int main ( ) C++
    les 2 notations sont acceptées

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par cmarsc Voir le message
    int main (void) C
    int main ( ) C++
    les 2 notations sont acceptées
    La seconde est hors-sujet...
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. [MySQL] Problème dans mon code entre une recherche mysql et en php
    Par pasbonte dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/12/2008, 14h04
  2. Problème dans mon code
    Par mrbou dans le forum ASP
    Réponses: 15
    Dernier message: 01/10/2008, 14h38
  3. Réponses: 3
    Dernier message: 15/03/2008, 15h15
  4. Réponses: 2
    Dernier message: 03/05/2007, 09h00
  5. Réponses: 13
    Dernier message: 17/10/2006, 15h35

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