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 :

Calcul de moyenne des deux notes supérieures


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 123
    Points : 66
    Points
    66
    Par défaut Calcul de moyenne des deux notes supérieures
    Bonjour je fais un exercice ou il faut calculer la moyenne des deux notes maximums parmi 3 saisies au clavier. J'essaye de faire des validations de saisie. Il est interdit dans les consignes d'utiliser les tableaux. Pourriez-vous me dire comment améliorer mon code ? Est-il problématique que je ne vide pas le buffer après chaque saisie, vu que je faisdes validations ? 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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    #include <stdio.h>
     
    int main ()
    {
        double note1,note2,note3,minimum,moyenne;
        int ok;
        char c;
     
        printf("Saisir la premiere note : ");
        ok=scanf("%lf",&note1);
        if(getchar()!='\n')
            c=getchar();
     
        if(ok==1 && c==0 && note1>=0 && note1<=20)
        {
            ok=0;
            printf("Saisir la deuxieme note : ");
            ok=scanf("%lf",&note2);
            if(getchar()!='\n')
                c=getchar();
            if(ok==1 && c==0 && note2>=0 && note2<=20)
            {
                ok=0;
                printf("Saisir la troisieme note : ");
                ok=scanf("%lf",&note3);
                if(getchar()!='\n')
                    c=getchar();
                if(ok==1 && c==0 && note2>=0 && note2<=20)
                {
                    if(note1==note2 && note1==note3)
                        moyenne=note1;
     
                    else if (note1<=note2)
                        if (note1<=note3)
                            moyenne=(note2+note3)/2;
                        else
                            moyenne=(note1+note2)/2;
                    else if (note2<=note3)
                        if (note2<=note1)
                            moyenne=(note1+note3)/2;
                        else
                            moyenne=(note2+note3)/2;
                    else if (note3<=note1)
                        if (note3<=note2)
                            moyenne=(note1+note2)/2;
                        else
                            moyenne=(note1+note3)/2;
     
                    printf("La moyenne des deux meilleures notes est %lf\n",moyenne);
                }
                else if(ok!=1 ||c!=0)
                    printf("Le valeur saisie n'est pas un nombre.");
                else if(note1<0 || note1>20)
                    printf("La note saisie n'est pas entre 0 et 20");
            }
            else if(ok!=1 ||c!=0)
                printf("Le valeur saisie n'est pas un nombre.");
            else if(note1<0 || note1>20)
                printf("La note saisie n'est pas entre 0 et 20");
        }
        else if(ok!=1 ||c!=0)
            printf("Le valeur saisie n'est pas un nombre.");
        else if(note1<0 || note1>20)
            printf("La note saisie n'est pas entre 0 et 20");
     
     
        /*
        printf("Saisir la troisieme note : ");
        ok=scanf("%lf",&note3);
        while(getchar()!='\n');
     
        if(note1<note2 && note1<note3)
            minimum=note1;
        else if (note2<note1 && note2<note3)
            minimum=note2;
        else if (note2==note3 &&)
            minimum=note3;
        printf("le minimum est %lf\n",minimum);
     
            if(note1!=minimum && note2!=minimum)
            {
                printf("Les maximums sont note1 et note2\n");
                moyenne=(note1+note2)/2;
            }
            else if (note2!=minimum && note3!=minimum)
            {
                printf("Les maximums sont note2 et note3\n");
                moyenne=(note2+note3)/2;
            }
            else
               moyenne=(note1+note3)/2;
     
        }*/
     
     
        return 0;
    }

  2. #2
    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
    Bonjour

    Pour la saisie je te renvoie à ton autre post.

    Ensuite pour le calcul, ben plutôt que de chercher les deux plus grandes notes (ce qui élève la complexité de la recherche au carré), perso je chercherais plutôt la plus petite "x".
    Ensuite je calculerais bêtement moyenne=(note1+note2+note3-x) / 2...

    Et pour chercher la plus petite, au lieu de faire tous ces tests imbuvablesimbriqués j'utiliserais plutôt une fonction...

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    int min(x, y)
    {
        return x < y ?x : y;
    }
     
    int main()
    {
        int note1, note2, not3;
        float moyenne;
     
        ... (la saisie des 3 notes) ...
     
       // Calcul de la moyenne des deux plus grandes
       moyenne=(note1+note2+note3 - min(note1, min(note2, note3))) / 2.0;
    }

    Et si t'es autorisé à utiliser les macros tu peux remplacer la fonction min() (dommage d'utiliser une fonction pour un truc aussi ridicule)...
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    #define MIN(x, y)     ((x) < (y) ?(x) :(y))
    ... puis tu remplaces min() mar MIN() dans le code...
    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]

  3. #3
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 123
    Points : 66
    Points
    66
    Par défaut
    Salut Svear, c'est super ta solution est vraiment très optimale ! J'avais pensé à utiliser la méthode du minimum, mais j'avais fait plusieurs if pour le trouver, et j'avais pas pensé à additionner les 3 notes et à soustraire le minimum, c'est super simple, je suis dégouté de pas y avoir pensé ! Au lieu de ça je faisais plusieurs conditions et je calculais la moyenne en fonction des deux notes maximales trouvées. Je ne connaissais pas les macros en c, en gros c'est remplacer du code par autre chose ?

  4. #4
    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 benjamin_malaussene Voir le message
    c'est super simple, je suis dégouté de pas y avoir pensé
    Un peu d'astuces, d'espièglerie, c'est la vie de Candy

    Citation Envoyé par benjamin_malaussene Voir le message
    Je ne connaissais pas les macros en c, en gros c'est remplacer du code par autre chose ?
    Si tu n'as pas appris, et que tu es en cours, alors ne les utilise pas. Ton prof n'aimera pas ce n'est pas primordial à l'apprentissage du C.

    Surtout que ce n'est pas toujours aussi simple. A la base oui, c'est un remplacement. Quand tu compiles, ton code est d'abord parsé par un pré-processeur qui remplace tous les #include par le source correspondant et toutes les macros par leur équivalent.
    C'est d'abord fait pour les nombres dits "magiques " (des nombres dont la valeur dépend de l'environnement ou des désirs du programmeur). Exemple

    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    char nom[20 + 1];
    char prenom[20 + 1];
     
    for (i=0; i < 20; i++) {
        nom[i]=...
        prenom[i)=...
    }
     
    ...
    ... (suite du code) ...
    ...
    printf("L'élève %s, %s a obtenu %d/20\n", nom, prenom, note);

    Si demain tu veux passer la taille des noms à 30, te faudra reprendre tout ton code et bien examiner chaque "20" pour le remplacer par "30" (en ne prenant que les "20" liés à la taille car le "20" de l'affichage de la note n'a aucun rapport et ne doit donc pas être changé). Donc faisable bien entendu, mais galère.

    D'où la macro de base qui sert de pseudo-constante
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #define SZ_STR      20
    char nom[SZ_STR + 1];
    char prenom[SZ_STR + 1];    // "+1" pour réserver la place du '\0' !!!
     
    for (i=0; i < SZ_STR; i++) {
        nom[i]=...
        prenom[i)=...
    }
     
    ...
    ... (suite du code) ...
    ...
    printf("L'élève %s, %s a obtenu %d/20\n", nom, prenom, note);

    Au final, ça ne change absolument rien car le préprocesseur remplace tous les "SZ_STR" par "20" et le source généré (qui sera ensuite compilé) est identique à celui du premier exemple. Mais le jour où tu veux changer la valeur, tu ne la changes qu'une fois.

    Mais ensuite, on peut y insérer des paramètres que la macro récupèrera et utilisera dans le remplacement. Exemple
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define CARRE(x)      x*x
    printf("Le carré de 5 est %d\n", CARRE(5));
    Ce qui devient alors printf("Le carré de 5 est %d\n", 5*5);. Mais le danger vient ensuite quand on commence à utiliser des expressions dans la macro. Exemple printf("Le carré de 2+3 est %d\n", CARRE(2+3)); qui devient alors printf("Le carré de 2+3 est %d\n", 2+3*2+3); et donne 11 au lieu de 25 !!!

    Pour se protéger, on entoure alors les paramètres de parenthèses
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define CARRE(x)      (x)*(x)
    printf("Le carré de 2+3 est %d\n", CARRE(2+3));
    Le résultat donne printf("Le carré de 2+3 est %d\n", (2+3)*(2+3)); et on retrouve bien les 25 attendus.

    Mais on peut aussi utiliser la macro elle-même dans une expression. Exemple
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define DIAMETRE(r)      (r)+(r)
    printf("La circonférence du cercle de rayon 5 est %f\n", 3.14 * DIAMETRE(5));
    Et cela donne le magnifique printf("La circonférence du cercle de rayon 5 est %f\n", 3.14 * (5)+(5)); où les parenthèses autour de "5" ne servent à rien pour la validité du calcul.

    Pour ce problème, on entoure alors la macro elle-même de parenthèses. Exemple
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define DIAMETRE(r)      ((r)+(r))
    printf("La circonférence du cercle de rayon 5 est %f\n", 3.14 * DIAMETRE(5));
    Ce qui donne alors printf("La circonférence du cercle de rayon 5 est %f\n", 3.14 * ((5)+(5)));.

    Ensuite, pour des raisons purement esthétiques, on entoure alors systématiquement toutes les macros, même celles qui n'en ont pas besoin
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #define DIAMETRE(r)      ((r)+(r))
    #define CARRE(x)      ((x)*(x))
    #define SZ_STR      (20)

    Et là on croit être bien protégé... sauf qu'arrive le fameux "++" !!!
    int i=5; printf("Le carré de %d est %d\n", i, CARRE(i++)); ce qui est traduit en int i=5; printf("Le carré de %d est %d\n", i, ((i++)*(i++))); et là on explose le jackpott en matière de bug difficilement repérable.
    Et malheureusement il n'y a aucun moyen de se protéger contre cela... sauf à ne pas utiliser de "++" dans les macros. Mais pour ça il faut savoir qu'on utilise une macro et non une fonction. C'est donc pour les reconnaitre qu'on les écrit généralement tout en majuscules alors que les fonctions seront écrites soit en minuscules, soit en combinaison minuscules/majuscules type void triangleDePascal()...

    Donc voilà les macros et surtout leurs dangers...
    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]

  5. #5
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 123
    Points : 66
    Points
    66
    Par défaut
    Salut Svear, merci beaucoup pour ta réponse, tu expliques super bien et tu es très pédagogue ! J'ai bien compris les macros, je vais essayer de faire d'autres exercices en utilisant tes conseils, et je reviendrai surement poster pour optimiser mon code. Merci !

  6. #6
    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
    Si tu apprends, tu ne veux probablement optimiser un tel programme au dela des simples bonnes manières.

    Tu voudras surtout qu'il soit lisible. et dans ce cas, on parlera pas d'optimisation, mais d'amélioration
    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

  7. #7
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 123
    Points : 66
    Points
    66
    Par défaut
    Bonjour j'ai modifié mon code pour l'améliorer, en faisant une fonction pour la saisie comme il m'a été recommandé. J'ai fait le choix de laisser de coté pour l'instant les fgets, fputs, opérateurs ternaires, et la fonction qui cherche le minimum, même si je sais que ce serait bcp mieux avec, c'est parce que le prof ne veut pas qu'on utilise pour l'instant ce qu'on n'a pas vu. Est-ce que vous pourriez m'aider à l'améliorer en rajoutant le numéro des notes ? Par exemple je voudrais que ça affiche "Saisir la note 1", comment est-ce que je peux faire ? 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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    #include <stdio.h>
    typedef char bool;
    #define false 0
    #define true 1
     
    int saisie(double* note)
    {
        bool validation;
        int ok;
        char c=0;
     
        printf("Saisir la note : ");
        ok=scanf("%lf",note);
     
        if(getchar()!='\n')
            c=getchar();
        if(ok==1 && c==0 && *note>=0 && *note<=20)
            validation=true;
        else if(ok!=1 ||c!=0)
        {
            printf("Le valeur saisie n'est pas un nombre.");
            validation=false;
        }
        else if(*note<0 || *note>20)
        {
            printf("La note saisie n'est pas entre 0 et 20");
            validation=false;
        }
        return validation;
    }
     
    int main ()
    {
        double note1,note2,note3,minimum,moyenne;
     
        if(saisie(&note1)==true && saisie(&note2)==true && saisie(&note3)==true)
        {
            if(note1==note2 && note1==note3)
                moyenne=note1;
     
            else
            {
                if (note1<=note2)
                    minimum = note1;
                else
                    minimum = note2;
                if (note3<=minimum)
                    minimum=note3;
                moyenne=(note1+note2+note3-minimum)/2;
            }
     
            printf("La moyenne des deux meilleures notes est %lf\n",moyenne);
        }
     
        return 0;
    }

  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
    faire une fonction saisie_note, qui te retourne une note.
    Comme ca, tu utilise cette fonction pour les trois notes
    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

  9. #9
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Bonjour,

    un code comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (note1<=note2) {
      if(note3<=note1)
        moyenne = (note1+note2)/2;
      else
        moyenne = (note2+note3)/2;
    } else {
      if(note3<=note2)
        moyenne = (note1+note2)/2;
      else
        moyenne = (note1+note3)/2;
    }
    reste lisible, même si la recherche du minimum est très élégante je trouve.

  10. #10
    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 benjamin_malaussene Voir le message
    Par exemple je voudrais que ça affiche "Saisir la note 1", comment est-ce que je peux faire ? Merci !
    Pas vraiment compliqué: tu rajoutes l'indice comme paramètre

    Accessoirement, tu as un test de trop. Ben oui, si la note ne valide pas le test "note correcte et entre 0 et 20", si ensuite tu testes sa validité et qu'elle est correcte alors c'est qu'elle est forcément pas entre 0 et 20 !!! (tu te souviens le coup d'un peu d'astuce, d'espièglerie... ???)

    Code c : 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
    typedef char bool;
    #define false 0
    #define true 1
    bool /* ben oui, la focntion renvoie un "bool validation" donc elle est "bool" !!! */ saisie(unsigned short ind, double* note)
    {
        int ok;
        char c;
     
        printf("Saisir la note %d: ", ind);
        ok=scanf("%lf",note);
     
        c=(getchar() == '\n') ?0 :1;
     
        if(ok==1 && c==0 && *note>=0 && *note<=20)
            return true;
        if(ok!=1 ||c!=0)
            printf("La valeur saisie n'est pas un nombre.");
        else
            printf("La note saisie n'est pas entre 0 et 20");
        return false;
    }
     
    int main ()
    {
        double note1,note2,note3,minimum,moyenne;
     
        if(saisie(1, &note1)==true && saisie(2, &note2)==true && saisie(3, &note3)==true)
        ...
    }

    PS: j'ai mis des return intermédiaires qui quittent la fonction avant sa fin naturelle. Certains profs n'aiment pas (les mêmes que ceux dont je parlais tantôt qui entendent des voix qui leurs dictent les règles d'harmonie du monde). Si c'est le cas pour le tien tu peux alors remettre ton bool validation.
    PS2: je ne pigeais pas trop pourquoi tu faisais 2 getchar() pour détecter la saisie erronée. Me semble que si on entre "12r" un seul getchar() permet de s'en rendre compte
    PS3: si l'utilisateur rentre "12abcdef" le getchar traitera le "a" mais laissera "bcdef" dans stdin (d'où le fgets() pour avoir toujours un stdin clean). Et n'essaye surtout pas fflush(stdin)...
    PS4: je t'ai laissé tes true/false mais rappelle-toi qu'une macro est par convention écrite en majuscules...

    Citation Envoyé par picodev Voir le message
    un code comme :...reste lisible
    Oui bien entendu. Mais si ensuite on passe à 4, 5, 10 notes et qu'il faut toujours les 3, 4, 9 plus fortes... Penser une solution c'est aussi essayer de penser (autant que possible) à "après" et (en dehors de la simpe solution) c'est aussi un peu ce que j'ai voulu montrer...

    Citation Envoyé par picodev Voir le message
    même si la recherche du minimum est très élégante je trouve.
    Merci, moi aussi
    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]

  11. #11
    Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 123
    Points : 66
    Points
    66
    Par défaut
    Bonjour Svear, encore une fois, tu m'as bien aidé !! J'avais pensé aux returns intermédiaires mais je ne me souvenais plus si j'avais le droit de le faire ou pas. Pour ce qui est du test inutile, il faut vraiment que je fasse attention !! Et je savais pas que j'avais le droit de passer des chiffres en paramètre lors de l'appel d'une fonction, merci ! Par contre, pour le cas du "12abcdef", le programme affiche le message d'erreur et s'arrete de suite, donc je crois qu'il n'est pas nécessaire de vider le buffer.

  12. #12
    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 benjamin_malaussene Voir le message
    donc je crois qu'il n'est pas nécessaire de vider le buffer.
    Bien sûr. Et si d'aventure tu fais ensuite une autre saisie...
    N'oublie pas qu'il n'y a qu'un seul buffer par programme...
    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]

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

Discussions similaires

  1. Calculer la moyenne des étudiants
    Par yawra dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/04/2012, 16h20
  2. calculer la moyenne des étudiants
    Par zora700 dans le forum C++
    Réponses: 5
    Dernier message: 15/03/2012, 07h10
  3. Calculer la moyenne des moyens.
    Par Invité dans le forum Requêtes
    Réponses: 3
    Dernier message: 02/09/2011, 16h15
  4. Réponses: 4
    Dernier message: 14/12/2009, 20h31
  5. calculer la moyenne des frames d'une vidéo
    Par jad777 dans le forum C++Builder
    Réponses: 1
    Dernier message: 26/10/2008, 11h32

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