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
    Nouveau 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
    Points : 1
    Points
    1
    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 sénior
    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
    Points : 20 985
    Points
    20 985
    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
    Nouveau 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
    Points : 1
    Points
    1
    Par défaut
    Je met quoi alors? merci de me le dire si vous avez la solution !

  4. #4
    Membre chevronné
    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
    Points : 2 208
    Points
    2 208
    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);

  5. #5
    Nouveau 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
    Points : 1
    Points
    1
    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 chevronné
    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
    Points : 2 208
    Points
    2 208
    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.

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Points : 151
    Points
    151
    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
    Points : 276
    Points
    276
    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 sénior
    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
    Points : 20 985
    Points
    20 985
    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
    Points : 6 498
    Points
    6 498
    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.

  11. #11
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    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 habitué 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
    Points : 136
    Points
    136
    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
    Points : 11 625
    Points
    11 625
    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 chevronné
    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
    Points : 2 208
    Points
    2 208
    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.

  15. #15
    Membre habitué 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
    Points : 136
    Points
    136
    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 sénior
    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
    Points : 20 985
    Points
    20 985
    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 sénior
    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
    Points : 20 985
    Points
    20 985
    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 habitué 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
    Points : 136
    Points
    136
    Par défaut
    C'est moi que tu traites de singe ??? !!!!! lol

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 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 sénior
    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
    Points : 20 985
    Points
    20 985
    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