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 code source debutant


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Problème code source debutant
    Bonsoir,

    Je suis débutant dans ce domaine (je m'y intéresse que depuis hier^^) et j'ai un probleme avec mon code source
    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
    #include <stdio.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    {
        int age = 0;
        printf("\n\nQuel age avez vous ?\n\n");
     
        scanf("\n\n%d", age);
     
        printf("vous avez %d ans", age);
     
        if (age >= 18)
        {
          printf ("\n\n\nVous etes majeur !\n\n");
        }
     
        if (age <= 18)
        {
            printf("\n\nVous n'etes pas majeur !\n\n");
        }
        return 0;
    }
    J'aimerais donc de l'aide (c'est vraiment basique pour des gens qualifier, mais moi je commence seulement )

    Merci beaucoup !

  2. #2
    Expert éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    Par défaut
    scanf("%d", &age);

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par donald54470 Voir le message
    Bonsoir,

    Je suis débutant dans ce domaine (je m'y intéresse que depuis hier^^)...
    J'aimerais donc de l'aide (c'est vraiment basique pour des gens qualifiés, mais moi je commence seulement )
    Bonjour

    Ce code est-il de toi ou bien l'as-tu recopié d'ailleurs ?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    A la base je suivais un cours trouvé sur internet et m’étais arrêté là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (age >= 18)
    {
      printf ("Vous etes majeur !");
    }
    J'ai voulu tester le "if" mais comme je peux constater j'avais oublié "&".

    Merci Melem pour cette réponse rapide.

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Le problème n'est pas l'oubli du "&", c'est surtout que tu ne saches pas pourquoi on doit le mettre. Parce que si tu l'avais su, tu ne l'aurais jamais oublié. Et aussi que tu fasses si peu d'efforts dans l'orthographe (car c'est une marque de respect des lecteurs que de bien écrire et donc écrire comme un torchon montre que t'en as rien à carrer de ceux qui vont devoir te déchiffrer)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Désolé si je fait encore des erreurs, je n'ai pas encore finis mon apprentissage du français et le français n'est pas ma langue maternelle, j'essaye de ne pas faire d'erreurs mais je ne les fait pas exprès.

  7. #7
    Expert éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    Par défaut
    Il y a des outils qui permettent de corriger gratuitement en ligne la grammaire et l'orthographe. Je t'invite à vérifier tes messages sur ces sites avant de les poster. En passant ton dernier message par ce correcteur par exemple, on obtient :
    Désolé si je fais encore des erreurs, je n'ai pas encore fini mon apprentissage du français et le français n'est pas ma langue maternelle, j'essaye de ne pas faire d'erreurs mais je ne les fais pas exprès
    Les règles relatives à la façon de s'exprimer sur les forums de developpez se trouvent ici.

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par donald54470 Voir le message
    Désolé si je fait encore des erreurs, je n'ai pas encore finis mon apprentissage du français et le français n'est pas ma langue maternelle, j'essaye de ne pas faire d'erreurs mais je ne les fait pas exprès.
    Ah ok. On pouvait pas savoir (surtout que ta page perso est totalement vide).

    Donc on en revient au point principal: le vrai problème est de savoir
    1) ce que signifie "&age"
    2) pourquoi parfois on utilise "&age" et pourquoi, parfois, on utilise "age"
    Tant que tu n'auras pas maitrisé cette notion, tu plomberas tous tes programmes et exercices...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2011
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    D'accord, j'utiliserai dorénavant le correcteur.

    Pour revenir à age, lorsque c'est &age c'est pour définir quelle variable %d doit affiché.
    Et lorsqu'on écrit juste âge c'est par exemple pour la définir

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par donald54470 Voir le message
    Pour revenir à age, lorsque c'est &age c'est pour définir quelle variable %d doit affiché.
    Et lorsqu'on écrit juste âge c'est par exemple pour la définir
    Raté. D'ailleurs tu dis "affiché" mais tu remarqueras que pour printf(), tu n'as pas mis de "&"...

    Le "&" signifie "adresse de". Tu passes à scanf non pas la variable mais son adresse. Parce qu'une fonction ne reçoit qu'une copie de l'élément qu'on lui passe. Et quand on n'a en main qu'une copie, on ne peut pas modifier l'original.
    Or scanf a pour but de remplir une variable. Mais comment la fonction scanf pourrait remplir la variable s'il n'en reçoit qu'une copie ?

    Solution => tu passes à scanf l'adresse de la variable. scanf() reçoit donc une copie de l'adresse de age. Mais cette adresse, bien que copiée, référence toujours la vraie variable "age". Donc avec cette adresse, scanf() peut maintenant aller modifier la vrai variable.

    On n'utilise "&" (adresse de) que dans le cas où
    - on veut passer une variable à une fonction qui aura à un moment donné besoin de modifier son contenu
    - on veut passer une variable de taille importante (tableau, structure). Dans ce cas, c'est plus rapide de copier l'adresse du tableau que le tableau entier
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Expert éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    Par défaut
    Pour bien comprendre printf, lire : Spécification des formats dans printf.
    Pour bien comprendre l'opérateur & et la fonction scanf, lire : Les pointeurs.

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

Discussions similaires

  1. Problème code source calculatrice !
    Par MarvinBosst dans le forum C++
    Réponses: 8
    Dernier message: 30/03/2015, 19h43
  2. Problème code source SQL d'un formulaire
    Par vbenjamin dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/08/2012, 10h37
  3. Problème code source affichage du nom de l'utilisateur
    Par Voitures007 dans le forum x86 16-bits
    Réponses: 8
    Dernier message: 21/12/2010, 15h28
  4. Problème Code Source de la page
    Par imparator_42 dans le forum VBScript
    Réponses: 11
    Dernier message: 14/04/2008, 11h33
  5. que pensez vous de mon code source ecrit en c++(je debute)
    Par superspike23 dans le forum Débuter
    Réponses: 6
    Dernier message: 06/10/2005, 18h26

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