/*----------------------------------------------------------*/ /* */ /* AUTHOR : Eric VIOLARD */ /* E-MAIL : violard@icps.u-strasbg.fr */ /* ORGANISM : Université Louis Pasteur (Strasbourg) */ /* CREATION : 08/11/02 */ /* */ /* ---------------------------------------------------------*/ /* Programme qui, étant donnés 3 notes sur 20 et leur coefficient, affiche la moyenne pondérée en arrondissant au demi-point supérieur. Le programme fonctionne même si les notes données ne sont pas arrondies. Ex : 13.214 Ici, arrondir un nombre x au demi-point supérieur signifie que si sa partie décimale est dans l'intervalle : - [0, 0.25[ alors le résultat est partie entière de x - [0.25, 0.75[ alors le résultat est (partie entière de x) + 0.5 - [0.75, 1[ alors le résultat est (partie entière de x) + 1 On peut obtenir le résultat par la formule: [partie entière de (4x+1)/2]/2 */ #include /* pour utiliser les fonctions printf et scanf */ main() { /* déclarations */ float note1,note2,note3; /* les 3 notes données (de type réel) */ int coef1,coef2,coef3; /* les 3 coefficients données (de type entier) */ float moyenne; /* moyenne des 3 notes */ float moyenne_arrondie; /* le résultat */ /* --- lecture des 3 notes --- */ printf("Entrer une première note sur 20 et son coefficient : "); scanf("%f %d",¬e1,&coef1); printf("Entrer une deuxième note sur 20 et son coefficient : "); scanf("%f %d",¬e2,&coef2); printf("Entrer une troisième note sur 20 et son coefficient : "); scanf("%f %d",¬e3,&coef3); /* --- calcul de la moyenne --- */ moyenne = (note1*coef1+note2*coef2+note3*coef3)/(coef1+coef2+coef3); /* --- arrondissement de la note (en utilisant la formule) --- */ moyenne_arrondie = ((int)((4.*moyenne+1.)/2.))/2.; /* ici, le cast (int) est utilisé pour obtenir la partie entière d'un nombre réel */ /* --- affichage du résultat --- */ printf("La moyenne est %f\n",moyenne_arrondie); }