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 99 100 101 102 103 104 105 106 107 108 109
| #include <stdio.h> // Directives de preprocesseur.
#include <stdlib.h>
#include <math.h>
void ordonnerTableau(double tab[], int N);
int main (void) // Debut de la fonction.
{
int N = 0, i = 0, mediane_1 = 0, j=0;// Creation des variables.
float note = 0,somme_note = 0,somme_note_carre = 0,moyenne = 0;
double variance = 0,ecart_type = 0, noteMin = 20, noteMax = 0,tab[i],mediane = 0;
printf ("Programme de calcul de la moyenne et ecart type de notes .\n"); // Message d'accueil.
printf ("\nEntrez le nombre de cours : "); // Saisie du nombre de cours.
scanf ("%d", &N); // Nombre de cours stocke dans la variable "N".
for (i=0;i<N;i++) // Initialisation de la boucle for , avec i allant de 1 jusqu'a�N par pas de 1.
{
printf ("\nEntrez les notes : "); // Saisie des notes une par une.
scanf ("%f", ¬e);
// Stockage des notes dans la variable Ai.
while(note < 0 || note > 20 )
{
printf("\nErreur!\nEntrez la note : "); // Affichage d'un message d'erreur lorsque Ai < 0
scanf ("%f", ¬e);
} // et lorsque Ai > 20.L'utilisateur doit redonner une note.
tab [i] = note;
somme_note = somme_note+note; // Incrementation de la somme des notes.
somme_note_carre = somme_note_carre+note*note; // Incrementation du carre de la somme des notes.
if (note > noteMax) // Structure if permettant de trouver la note maximale.
{
noteMax = note;
}
else
{
noteMax = noteMax;
}
if (note < noteMin) // Structure if permettant de trouver la note minimale.
{
noteMin = note;
}
else
{
noteMin = noteMin;
}
} // Fin de la boucle For.
moyenne = somme_note/N; // Calcul de la moyenne.
variance = somme_note_carre/N-moyenne*moyenne; // De la variance.
ecart_type = sqrt (variance); // Et de l'ecart type.
printf ("\nLa moyenne est : %f\nL'ecart type est : %lf\nNote maximale: %f\nNote minimale: %f\n", moyenne, ecart_type, noteMax, noteMin); // Affichage de la moyenne, de l'�ecart type, de la note maximale et minimale.
if (moyenne < 10) // Structure if permettant d'ajouter des commentaires
{
printf ("Vous etes ajourne.\n");
} // en fonction de la moyenne ( M<10 : ajourne,M>10 :admis,
else // M>15 : avec mention tres� bien, M>12 : mention bien.
{
printf ("Vous etes admis.\n");
}
if (moyenne >= 15)
{
printf ("Avec mention tres bien.\n");
}
else if (moyenne >= 12)
{
printf ("Avec mention bien.\n");
}
ordonnerTableau(tab,N);
if (N%2 == 0) //pair MEDIANE
{
mediane = (tab[N/2]+tab[(N/2)-1])/2;
}
else if(N%2 == 1) //impair
{
mediane = N/2;
mediane_1 = ceil(mediane);
mediane = tab[mediane_1];
}
printf("\nRecapitulatif:\nVoici vos notes, votre moyenne et mediane!\n");
for (i=0; i<N; i++)
{
printf("tab[%d] = %f\n", i, tab[i]);
}
printf ("Moyenne :%f\nMediane :%f",moyenne, mediane);
return 0 ; // Fin de la fonction.
}
void ordonnerTableau(double tab[], int N)
{
int i, min, j , valeurtemporaire;
for(i =0; i < N -1; i++)
{
min = i;
for (j = i+1; j < N ; j++)
if (tab[j] < tab[min])
min = j;
if (min != i)
{
valeurtemporaire = tab[i];
tab[i] = tab[min];
tab[min] = valeurtemporaire;
}
}
} |