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 de résultat


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Par défaut Problème de résultat
    Bonjour, je débute en c et j'ai un petit problème, voila je dois faire une moyenne pondérée de 3 cotes sur 10 et qd je veux voir le résultat il change des fois la cote tout seul et je sais pas pk, pourriez-vous m'aider svp !!! merci
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
     
    void main()
    /*********************************************************************************************/
    /* INPUT: 3 cotes                                                                              */
    /* PROCESS: saisie de 3 cotes (0 <= cote <= 10) sat, geom, ana                                 */ 
    /*          calcul de la moyenne ponderee mp                                                   */
    /*			affichage de stat, geom, ana                                                       */
    /* OUTPUT: moyenne ponderee                                                                    */ 
    /*********************************************************************************************/
     
    {
    	int stat, geom, ana, mp;
     
    	/* saisie des données */
     
    	printf(" Cotes des cours (/10)?\n");
    	printf(" Statistiques?:");
    	scanf(" %d",&stat);
    	printf(" Geometrie?:");
    	scanf(" %d",&geom);
    	printf(" Analyse?:");
    	scanf(" %d",&ana);
     
    	system("cls");
     
    	/* calcul de la moyenne pondérée */
     
    	mp=( stat*3 +geom*5 +ana*2 ) /10;
     
    	/* affichage */
     
    	printf("Statistique %d\n", stat);
    	printf(" Geometrie %d\n", ana);
    	printf(" Analyse %d\n", ana);
    	printf(" Moyenne ponderee= %d\n", mp);
     
    	getch();
     
    }

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: Problème de résultat
    Citation Envoyé par Mephisto08
    Bonjour, je débute en c et j'ai un petit problème, voila je dois faire une moyenne pondérée de 3 cotes sur 10 et qd je veux voir le résultat il change des fois la cote tout seul et je sais pas pk, pourriez-vous m'aider svp !!! merci
    Je déconseille l'usage de scanf().

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Par défaut
    Je met quoi alors? merci de me le dire si vous avez la solution !

  4. #4
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    qd je veux voir le résultat il change des fois la cote tout seul
    ce n'est peut-etre qu'une illusion 8)
    tu ne vois rien qui cloche là!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf(" Geometrie %d\n", ana);


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Par défaut
    oui j'ai mis ana au lieu de geom lol, il a plus l'air de foiré la !! merci

  6. #6
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par Mephisto08
    oui j'ai mis ana au lieu de geom lol, il a plus l'air de foiré la !! merci
    y'a pas de quoi on est un peu là pour ça aussi.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Citation Envoyé par Mephisto08
    Je met quoi alors? merci de me le dire si vous avez la solution !
    Regade les liens que t'a donnés Emmanuel, en particulier la fonction fgets.

  8. #8
    Rédacteur

    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    113
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 113
    Par défaut
    Quand on débute, la plupart des cours (sur le net, ou un prof) commencent par scanf, et vu que le monsieur dit qu'il débute donc c'est assez, je dirai, normal.. qu'il utilise scanf
    De toute façon, rien n'empeche d'utiliser plusieurs fonctions, pour, un jour, se rendre compte soit même que ce n'est pas la bonne fonction à utiliser non ?

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par AjJi
    Quand on débute, la plupart des cours (sur le net, ou un prof) commencent par scanf,
    C'est effectivement courant, mais c'est une erreur. Dans le K&R, c'est pas comme ça.
    et vu que le monsieur dit qu'il débute donc c'est assez, je dirai, normal.. qu'il utilise scanf
    De toute façon, rien n'empeche d'utiliser plusieurs fonctions, pour, un jour, se rendre compte soit même que ce n'est pas la bonne fonction à utiliser non ?
    scanf() c'est tellement complexe et instable (quand c'est mal utilisé) que je ne vois pas bien comment un débutant pourrait s'en sortir sans crise de nerfs...

  10. #10
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Le problème est celui-ci : l'enseignement est-il destiné à former des pros du C, donc là d'accord, il faut éviter scanf, sinon, si c'est un module de 3 mois, on peut peut-être évoquer le problème sans l'approfondir. Il faut savoir quel est l'idée pédagogique des profs derrière leurs enseignements et ne pas juger sans savoir.
    Tu as ta vision de pro tout à fait respectable, moi j'en ai une autre celle de l'enseignant qui a un temps limité pour faire passer un enseignement.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  11. #11
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Trap D
    Le problème est celui-ci : l'enseignement est-il destiné à former des pros du C, donc là d'accord, il faut éviter scanf, sinon, si c'est un module de 3 mois, on peut peut-être évoquer le problème sans l'approfondir.
    Le truc, c'est qu'on n'a pas besoin de scanf(). Il suffit de ne pas en parler aux etudiants. J'ai vu un cours de C quelque part sur Internet ou scanf() n'etait jamais aborde, mais juste cite a la fin dans "autres fonctions".

  12. #12
    Membre confirmé Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    Vaut mieux créer des variable de type char et ensuite fare un gets

    ensuite convertir l'alpha en integer, en float etc ...

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     char a[3];
     
               float tmp;  // Float car c'est avec ce type là que le scanf cause le plus de probleme
     
           printf(" entrez un nombre réel : \n"); gets(a);
     
        tmp=atof(a); // alpha to float (cast)

  13. #13
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par issou
    Vaut mieux créer des variable de type char et ensuite fare un gets

    ensuite convertir l'alpha en integer, en float etc ...

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     char a[3];
     
               float tmp;  // Float car c'est avec ce type là que le scanf cause le plus de probleme
     
           printf(" entrez un nombre réel : \n"); gets(a);
     
        tmp=atof(a); // alpha to float (cast)
    Pourquoi Emmanuel perd son temps à donner des liens si personne ne les lit : http://emmanuel-delahaye.developpez....tes.htm#saisie
    La seule a utiliser pour la saisie utilisateur est fgets

    J'ai été clair ou faut que je recommence pour les deux qui discutent au fond de la classe ?

  14. #14
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par issou
    Vaut mieux créer des variable de type char et ensuite fare un gets

    ensuite convertir l'alpha en integer, en float etc ...

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     char a[3];
     
               float tmp;  // Float car c'est avec ce type là que le scanf cause le plus de probleme
     
           printf(" entrez un nombre réel : \n"); gets(a);
     
        tmp=atof(a); // alpha to float (cast)
    il ne faut surtout pas utilisé gets c'est un veritable bug cette fonction!! (d'ailleurs elle a le statut de depreciated ou un truc du genre qui signifie qu'on doit jamais l'utiliser dans un programme en C).
    la fonction la plus adaptée à la saisie est fgets.
    voir la page de Emmanuel Delahaye pour une explication de l'utilisation de fgets.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  15. #15
    Membre confirmé Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    Moi perso j'utilise fgets la plupart du temps mais pour ce qu'il fait come programme pour le moment ,a mon humble avis le gets suffit amplement et est beaucoup plus fiable que scanf .

    Maintenant prendre les bonnes habitudes dés le départ pourquoi pas avec le fgets...

    Pourquoi Emmanuel perd son temps à donner des liens si personne ne les lit
    C'est pas à moi qui faut le dire !!

  16. #16
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par issou
    Vaut mieux créer des variable de type char et ensuite fare un gets
    Non. Jamais de gets(). C'est un bug!

    http://emmanuel-delahaye.developpez....tes.htm#saisie
    http://emmanuel-delahaye.developpez....s.htm#fichiers

  17. #17
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par issou
    Moi perso j'utilise fgets la plupart du temps mais pour ce qu'il fait come programme pour le moment ,a mon humble avis le gets suffit amplement.
    Le premier test que je fais quand je vois arriver une attente interactive, c'est de sortir deux ou trois singes de leur cage et de les laisser jouer un quart d'heure avec le clavier. Ensuite je remet les singes dans leur cage,et je fais <enter>. Si ça craque, je revoie la paquet.

  18. #18
    Membre confirmé Avatar de issou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    C'est moi que tu traites de singe ??? !!!!! lol

  19. #19
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Petite question :
    mieux vaut utiliser atoi() atof()... ou sscanf().

    Mon prof m'a conseillé sscanf, j'aimerai votre avis.

  20. #20
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Skyrunner
    mieux vaut utiliser atoi() atof()... ou sscanf().

    Mon prof m'a conseillé sscanf, j'aimerai votre avis.
    strtol(), strtoul() et strtod().

    Si on test le code retour, sscanf() est pas mal, mais il ne gère pas le débordement contrairement aux 3 fonctions précédentes. (errno -> ERANGE).

Discussions similaires

  1. Problème de résultats avec ADO
    Par bdgtat dans le forum Bases de données
    Réponses: 6
    Dernier message: 03/06/2006, 23h19
  2. [MySQL] problème de résultat avec une requête
    Par jexl dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/03/2006, 00h23
  3. [SQL] Problème de résultat avec une requête
    Par raptorman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/01/2006, 18h16
  4. [VBA] Calcul du PGDC --> Problème de résultat
    Par snoopy69 dans le forum Access
    Réponses: 16
    Dernier message: 25/08/2005, 15h23
  5. problème avec résultat de recherche multi-critères
    Par audrey_desgres dans le forum Access
    Réponses: 2
    Dernier message: 23/06/2005, 12h00

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