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() pour récupérer des notes


Sujet :

C

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 7
    Points
    7
    Par défaut scanf() pour récupérer des notes
    Bonjour,

    En ce moment je code un programme pour dire si c'est la moyenne ou non et que les notes doivent être entre 0 et 20 mais le programme me retourne à chaque fois que c'est la moyenne et si j'entre les notes au dessus de 20 la condition n'est pas réalisée.
    Pouvez vous me dire ou j'ai fait une erreur?

    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 <stdlib.h>
    #include <stdio.h>
     
    int main ()
    {
     
    	int note;
    	int stock;
    	do {
    		printf("Veuillez entrer une note :\n");
    		note = scanf("%d" , &stock);
    	}while(note <= 0 && note >=20); 
     
    	if (note < 10)
    	{
    		printf("Vous avez eu la moyenne\n");
    	}
    	else
    	{
    		printf("Vous avez pas eu la moyenne\n");
    	}
     
    	return 1;
     
    }
    Merci,

    Cpsatos

  2. #2
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    J'ai deux questions :

    1. comment comptes-tu stocker plusieurs notes ?
    2. D'après la documentation de scanf, quels sont selon toi les soucis posés par la manière dont tu l'utilises ?


    Pense à donner un titre explicite à tes sujets, sur un forum d'entraide à la programmation on se doute que tu vas nous parler de tes difficultés à programmer..

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    En fait je veux que l'utilisateur entreune note et le programme doit dire si c'est au dessus de la moyenne ou en dessous.
    Mais je ne vois pas où est l'erreur.


    Je ne vois pas quel erreur j'ai fait avec scanf.

    Ok d'accord je mettrai des titre explicites

  4. #4
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Ok. Je pensais que tu cherchais à calculer une moyenne, auquel cas tu aurais eu besoin de lire plusieurs notes.


    De la documentation de scanf (l'emphase est mienne), l'introduction :

    Reads data from the a variety of sources, interprets it according to format and stores the results into given locations.
    1) reads the data from stdin
    ..et la section return value, à propos de ce qui est retourné par la fonction donc :

    Number of receiving arguments successfully assigned (which may be zero in case a matching failure occurred before the first receiving argument was assigned), or EOF if input failure occurs before the first receiving argument was assigned.
    Autrement dit : scanf stocke ce qui a été lu dans ses paramètres, qui lui sont passés (par référence) lors de l'appel, puis retourne le nombre de paramètres auxquels elle est parvenue à affecter une valeur. scanf ne retourne pas ce qui a été lu !

    Peux-tu en déduire pourquoi note = scanf("%d" , &stock); ne fait pas ce que tu escomptes ?


    Si ce n'est déjà fait, il faudrait que tu lises et assimiles au moins la première moitié du cours de C avant d'aller plus loin.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Juin 2009
    Messages
    4 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 481
    Points : 13 679
    Points
    13 679
    Billets dans le blog
    1
    Par défaut
    Pour scanf() en particulier, je te conseille cet article : http://xrenault.developpez.com/tutoriels/c/scanf/


    PS : j'ai modifié le titre de la discussion

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Eleve
    Inscrit en
    Novembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Eleve

    Informations forums :
    Inscription : Novembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    la condition doit verifier si le nombre entrer par the user est au dessous 10 ou si il est au dessus de 10.
    Pour cela la condition doit être :
    if (stock >= 10)
    et non if ( note < 10) cette condition n'est pas bon.......

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    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 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Cpsatos Voir le message
    Pouvez vous me dire ou j'ai fait une erreur?

    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 <stdlib.h>
    #include <stdio.h>
    
    int main ()
    {
    	
    	int note;
    	int stock;
    	do {
    		printf("Veuillez entrer une note :\n");
    		note = scanf("%d" , &stock);
    	}while(note <= 0 && note >=20); 
    
    	if (note < 10)
    	{
    		printf("Vous avez eu la moyenne\n");
    	}
    	else
    	{
    		printf("Vous avez pas eu la moyenne\n");
    	}
    
    	return 1;
    
    }
    Bonjour

    Moi je ne sais pas trop comment une note peut être plus petite que 0 et aussi (donc "en même temps") plus grande que 20. Peut-être qu'avec la mécanique quantique... et je ne vois pas trop à quoi sert la variable "stock" là dedans.

    Sinon dans mes souvenirs d'école, "avoir la moyenne" signifiait "avoir au-moins 10". Mais bon, avec l'école moderne peut-être que...
    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]

  8. #8
    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
    pire, stock contiendra la valeur lue, et note contiendra le nombre de champ effectivement lu (soit 0 ou 1).
    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

Discussions similaires

  1. Probleme avec mon programme des 8 reines
    Par zuzu6969 dans le forum C++
    Réponses: 12
    Dernier message: 08/04/2010, 14h30
  2. Probleme avec un programme
    Par eldiablo7 dans le forum C
    Réponses: 1
    Dernier message: 21/04/2009, 20h46
  3. probleme avec un programme en JS qui realise des calculs
    Par leclone dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/09/2006, 18h09
  4. [TP] Problème avec mon programme de conversion
    Par Panzer95 dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 28/05/2006, 18h36
  5. Debutant en JAVA, problème avec 1er programme
    Par Gymerus dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 07/09/2005, 12h10

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