aide pour un débutant en programmation en c.
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

aide pour un débutant en programmation en c.



  1. #1
    invite730ac3bd

    aide pour un débutant en programmation en c.


    ------

    Bonjour, je me suis lancer dans l'apprentissage de la programmation en c et je bute sur un problème que je n'arrive pas a comprendre.


    Code:
    #include <stdio.h>
    
    int main ()
    {
         int a, b;
       
         a = 6;
         b = 8;
         if ( a > b);
         {
                printf("%d est plus grand que %d.\n", a, b)
         }
         return 0;
    }
    Voila mon code. Je n'arrive pas a comprendre , sachant que a est plus petit que b,pourquoi l'instruction se lance quand même? Merci de me renseigner.
    p.s: désoler pour l'orthographe.

    -----
    Dernière modification par JPL ; 22/05/2019 à 18h23. Motif: Ajout de la balise Code (#) pour garder l'indentation

  2. #2
    invite730ac3bd

    Re : aide pour un débutant en programmation en c.

    Je vient de comprendre mon erreur plus besoin de me répondre.
    Faut enlever le point virgule sur la ligne 6, je le dit si jamais sa peut aider quelqu'un.

  3. #3
    Paraboloide_Hyperbolique

    Re : aide pour un débutant en programmation en c.

    Bonjour,

    Votre code n'a pas le comportement attendu car il y a une faute de frappe dedans: un point virgule est présent après la parenthèse fermante du "if". En conséquence, le code qui suit entre accolades n'est pas associé à la condition et est exécuté dans tous les cas...

  4. #4
    Paraboloide_Hyperbolique

    Re : aide pour un débutant en programmation en c.

    Arf, grillé...

  5. A voir en vidéo sur Futura
  6. #5
    jiherve

    Re : aide pour un débutant en programmation en c.

    bonjour,
    un compilo malin supprimera tout!
    voir "dead code elimination".
    JR
    l'électronique c'est pas du vaudou!

  7. #6
    CM63

    Re : aide pour un débutant en programmation en c.

    Citation Envoyé par jiherve Voir le message
    bonjour,
    un compilo malin supprimera tout!
    voir "dead code elimination".
    JR
    Il n'y avait pas de code mort dans ce qu'il a fait : un if de une seule ligne, suivi d'un bloc sans entête, aucun code n'aurai été détecté.

  8. #7
    pm42

    Re : aide pour un débutant en programmation en c.

    Citation Envoyé par CM63 Voir le message
    Il n'y avait pas de code mort dans ce qu'il a fait : un if de une seule ligne
    Le if est précisément du code mort.
    D'ailleurs, certains compilos le détectent et affichent un warning: " warning: if statement has empty body [-Wempty-body]".

    Et en mode optimisé, le code saute en effet.

  9. #8
    jiherve

    Re : aide pour un débutant en programmation en c.

    bonjour,
    j'ai vu des exemples encore plus radicaux :
    ex : appel d'une fonction qui modifiait autre chose que le return et plouf au revoir la fonction avec un compilateur C ANSI strict!!
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    invite6486d7bd

    Re : aide pour un débutant en programmation en c.

    Citation Envoyé par jiherve Voir le message
    bonjour,
    j'ai vu des exemples encore plus radicaux :
    ex : appel d'une fonction qui modifiait autre chose que le return et plouf au revoir la fonction avec un compilateur C ANSI strict!!
    JR
    C'est vicieux ces petites bêtes.

    Ou encore l'éditeur sous Delphi qui supprime dans le source les procédures d'évènement qui ne contiennent pas de code (pas pratique pour programmer lorsqu'on a mis en attente cette portion de code).

  11. #10
    albanxiii
    Modérateur

    Re : aide pour un débutant en programmation en c.

    Citation Envoyé par LeMulet Voir le message
    Ou encore l'éditeur sous Delphi qui supprime dans le source les procédures d'évènement qui ne contiennent pas de code (pas pratique pour programmer lorsqu'on a mis en attente cette portion de code).
    Un problème que l'on n'a pas avec vi
    Not only is it not right, it's not even wrong!

  12. #11
    polo974

    Re : aide pour un débutant en programmation en c.

    Citation Envoyé par albanxiii Voir le message
    Un problème que l'on n'a pas avec vi
    ni avec ed...
    Jusqu'ici tout va bien...

  13. #12
    Jack
    Modérateur

    Re : aide pour un débutant en programmation en c.

    Citation Envoyé par jiherve Voir le message
    ex : appel d'une fonction qui modifiait autre chose que le return et plouf au revoir la fonction avec un compilateur C ANSI strict!!
    Je n'ai pas compris. Tu veux dire autre chose que ce que renvoie le return? Un exemple?

  14. #13
    invite1c6b0acc

    Re : aide pour un débutant en programmation en c.

    Citation Envoyé par coachj Voir le message
    Je vient de comprendre mon erreur plus besoin de me répondre.
    Faut enlever le point virgule sur la ligne 6, je le dit si jamais sa peut aider quelqu'un.
    Non, il faut le déplacer pour le mettre à la fin du printf() ...
    Le code que tu nous as donné ne se compile pas.
    Et les compilateurs sympas signalent le if (en examinant l'indentation qui suit) :
    Code:
    > gcc -Wall pv.c
    pv.c: In function ‘main’:
    pv.c:9:6: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
          if ( a > b);
          ^~
    pv.c:10:6: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
          {
          ^
    pv.c:12:6: error: expected ‘;’ before ‘}’ token
          }
          ^

  15. #14
    jiherve

    Re : aide pour un débutant en programmation en c.

    Bonsoir;
    @Jack en l’occurrence c’était, si ma mémoire est bonne, une fonction de réception UART qui modifiait un pointeur, ce pointeur étant passé en paramètre mais le return était un truc du type "ok", le compilo étant ANSI strict il ne modifiait pas le pointeur, car pour lui c’était une constante donc la fonction ne faisait rien.
    Toujours si ma mémoire est bonne( cela fait presque 5 lustres) cela avait été résolu avec un typage "volatile" , car pour ce compilo les paramètres des fonctions était par défaut de type"const" .

    JR
    l'électronique c'est pas du vaudou!

  16. #15
    Jack
    Modérateur

    Re : aide pour un débutant en programmation en c.

    Et pourtant le pointeur était utilisé pour se référer à des données? C'est bizarre.

    Concernant le volatile, je l'utilisais souvent lorsque je programmais des microcontrôleurs et afin d'éviter de zapper des instructions qui auraient pu paraître inutile, du genre accès à un registre sans récupérer son contenu.

    Mais je suppose que tu connais bien le problème.

Discussions similaires

  1. Un peu d'aide pour un débutant svp!!!!
    Par invitec8275408 dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 37
    Dernier message: 27/01/2017, 11h41
  2. Aide pour un débutant
    Par invite27e8a897 dans le forum Électronique
    Réponses: 1
    Dernier message: 28/05/2013, 18h24
  3. quel livre pour un débutant en programmation pic language C
    Par invite3a95e38f dans le forum Électronique
    Réponses: 13
    Dernier message: 20/01/2011, 21h32
  4. Conseil et matériel pour programmation PIC, débutant
    Par invited1540882 dans le forum Électronique
    Réponses: 11
    Dernier message: 25/11/2009, 07h42
  5. Aide pour un debutant
    Par invite79ad6a5e dans le forum Matériel astronomique et photos d'amateurs
    Réponses: 15
    Dernier message: 25/04/2005, 20h00