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 :

[scanf] Décalage de l'affichage


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut [scanf] Décalage de l'affichage
    Bonjour à tous,.
    Ceci est un exercice didactique
    Voici le code.
    on introduit un nombre entier nbVilles qui determine le nombre de boucles que le programme va effectuer après on introduit le nombre d'habitants et on trouve le nombre de villes dont le nombre d'habitants est > à 10000
    Rien que du basique . C'est au deuxième scanf que se situe le problème au lieu d'afficher "habitants?" le programme attend un nombre?? Ensuite il affiche"habitants? et ainsi de suite tout est décalé
    Je suis avec code blocks pas d'erreur de compilation ni de warning. . Cela doit être évident mais pas pour moi
    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
     
    #include<stdio.h>
    int main() {
        int nbVilles=0;
        int hab=0;
        int co=0;
        scanf("%d\n",&nbVilles);//lit le nb de villes
        int i=0;
        for(i = 0;i <nbVilles;i++){
            printf("habitants ?\n");
            scanf("%d\n",&hab);//lit le nb d'habitants
     
            printf("ha%d\n",hab);
            if (hab>10000){
                co=co+1;
            }
        }
        printf("%d\n",co);//on affiche le nb de villes sup à 10000 habitants
    return 0;
    }
    Avec les chiffres 6 (nbvilles) 1000 ,5000 , 15000 , 4780 ,0 ,2356 (habitants)
    on a l'affichage
    1000
    habitants ?
    5000
    ha1000
    habitants ?
    15000
    ha5000
    habitants ?
    4780
    ha15000
    habitants ?
    0
    ha4780
    habitants ?
    23590
    ha0
    habitants ?
    0
    ha23590
    2


    on devrait avoir
    habitants ?
    1000
    ha1000
    habitants ?
    5000
    ha 5000 etc..
    Est ce que quelqu'un qui a code blocks pourrait tester ce code ou mieux m'expliquer ce qui se passe.

    Merci de m'avoir consacré de votre temps .

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2012
    Messages : 112
    Points : 98
    Points
    98
    Par défaut
    Bon,je réponds pour éviter à un deb de chercher

    1)il faut supprimer le \n dans les scanf

    2)suivant la version de C( C90 versus C99) ,la déclaration de i peut causer une erreur en c90 si on le fait dans la déclaration for

    3) les commentaires provoquent une erreur mais là je n'ai pas compris pourquoi .Il demande une expression mais je ne sais pas laquelle

    C:\Users\unknown\Documents\C\MoocC\Untitled2.c|5|error: expected expression before '/' token|

    Il vaut mieux utiliser l'encadrement /* commentaires */

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    avant C99, les seuls commentaires possibles étaient /* entre C-style comment */.

    Cela dit, avant C99, ca veut dire selon une norme de 89/90 c'est à dire d'il y a 25 ans...
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

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

Discussions similaires

  1. Décalage dans l'affichage selon écran
    Par Stevens.Georges dans le forum Langage
    Réponses: 8
    Dernier message: 04/02/2015, 20h49
  2. Problème décalage de l'affichage
    Par jerem_orga dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 05/02/2012, 23h02
  3. TextField : décalage entre l'affichage et la zone active
    Par Soulaï dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 08/07/2010, 10h36
  4. décalage entre les affichages sur IE et firefox
    Par parano dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/01/2010, 21h46

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