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;
}