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 avec la fonction scanf()


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut Problème avec la fonction scanf()
    Bonjour,
    Bon je viens de débuter à apprendre le langage C. J'ai un petit programme pour afficher dans l'ordre croissant les n premiers nombres, dont n est saisi par l'utilisateur, mais mon programme ne fonctionne pas correctement, et la fonction scanf ne marche pas et je ne peux pas entrer un nombre. Voici le 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
    #include <stdio.h>
     
    main()
    {
        printf("Hello world!\n");
     
        int i;
        int n;
     
        printf ("ce programme affiche l'ordre des n premier chiffre\n");
        printf ("entrer un le nombre max:\n") ;
        scanf ("%f", &n);
        for (i=1; i<=n; i++){
            printf ("%f", &n) ;
        }
    }
    Merci de votre aide, cordialement.

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 315
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Tout d'abord la fonction scanf(); est "délicate" à utiliser (il vaut mieux utiliser fgetc : voir http://c.developpez.com/faq/?page=Ge...iere-securisee)

    Ensuite n est un entier. Tu utilises la directive %f qui est dédié aux nombres à virgules.

  3. #3
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    ce qui est bien : dans un scanf() on doit mettre l'adresse où la fonction doit ranger le résultat : &n
    ce qui est faux : le format doit absolument correspondre au type de la valeur lue. %f est un format pour des float, pas pour des entiers comme n. Utiliser un format approprié pour un int comme %d
    ----------
    ce qui est faux : dans un printf() on doit mettre la valeur à afficher (n) et non pas l'adresse de cette valeur (&n)
    ce qui est faux : le format doit absolument correspondre au type de la valeur lue. %f est un format pour des float et des doubles, pas pour des entiers. Utiliser un format approprié pour un int comme %d

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    tout d'abord merci de votre aide

    Gerald3d: merci bien pour ton aide et j'ai bien reçu

    diogene: j'ai fait une rectification de mon code avec tes directive mais le problème persiste
    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
     
    main()
    {
        printf("Hello world!\n");
     
        int i;
        int n;
     
        printf ("ce programme affiche l'ordre des n premier chiffre\n");
        printf ("entrer un le nombre max:\n") ;
        scanf ("%d", &n);
        for (i=1; i<=n; i++){
            printf ("%d", i) ;
        }
    }

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut Merci beaucoup
    bon je crois que c'était mon EDI qui bugait mais je viens de refaire le code avec un nouveau projet et ça marche maintenant

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

Discussions similaires

  1. Problème avec la fonction scanf
    Par arnodujura dans le forum Débuter
    Réponses: 2
    Dernier message: 06/03/2009, 17h33
  2. Problème avec la fonction findfirst ()
    Par Angelico dans le forum Windows
    Réponses: 3
    Dernier message: 05/08/2004, 20h40
  3. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24
  4. Problème avec les fonctions
    Par jvachez dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 13/01/2004, 12h06
  5. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04

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