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 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
| #include <stdio.h>
struct etudiant {
char nom [32] ;
char prenom [32] ;
int age ;
float note ;
};
// fonction moyenne
float calculMoyenne(int nbEtudiant, struct etudiant Moyennes){
long total;
total = 0;
struct etudiant moy[nbEtudiant];
moy[nbEtudiant] = Moyennes;
for(int i=0;i<nbEtudiant;i++){
total = total + moy[i].note;
}
float moyenne;
moyenne = total / nbEtudiant;
return moyenne;
}
int main () {
//float moyenne;
int N, i, j, k, indMin, age;
float average;
//float moyenne;
//struct etudiant aide[1], aide2[1];
// enregistrement
//declaration de la fonction moyenne
float moyenne (int N, struct etudiant tab);
printf("saisir le nombre d'etudiant \n");
scanf("%d", &N) ;
struct etudiant tab[N] ;
//remplissage du tableau des N etudiants
FILE *myfile;
myfile = fopen("etudiant.txt", "w+");
for(i=0;i<N;i++) {
//printf - sortie a l'ecran
printf("Etudiant numero [%d]\n", i+1);
printf("Saisir Nom: ", i);
scanf("%s", &tab[i].nom);
printf("Saisir Prenom: ", i);
scanf("%s", &tab[i].prenom);
printf("Saisir Age: ", i);
scanf("%d", &tab[i].age);
printf("Saisir Note de l'Etudiant: ", i);
scanf("%f", &tab[i].note);
//fprintf - ecriture dans le fichier
fprintf(myfile,"%s, %s, %d, %f\n", tab[i].nom, tab[i].prenom, tab[i].age, tab[i].note) ;
}
printf("TEST TEST TEST \n");
//printf("la moyenne de la classe est %f", moyenne);
// tri par selection
// creation d une struct temporaire pour trier les etudiant par age
//struct etudiant temp[N];
int temp[N];
temp[0] = 0;
//k = N;
if(N>1){
for(i=0;i<N-1;i++){
//decale tous les nombre d une case vers le bas tant que le nb trie est inferieur a la 1er case temp
//for(k=0;k<N-1;k++){
if(tab[i].age >= temp[0]) {
//while(tab[i].age >= temp[0]){
for (k=N-1;k>0;k--)
temp[k] = temp[k-1];
//temp[N-1-i] = temp[N-2-i];
temp[k] = tab[k].age;
k++;
//}
}
else{
temp[0] = tab[i].age;
}
//}
//temp[0] = tab[i].age;
}
}
for(j=0;j<N;j++){
printf ("%d\n", temp[j]);
}
fclose(myfile);
average = calculMoyenne(N, tab[N]);
printf ("valeur de la moyenne de la classe : %f\n", average);
//
// if(tab[i].age <= tab[i+1].age){
// temp[i].age = tab[i].age;
// }
// if(tab[i].age < temp[i].age){
// temp[i+1].age = tab[i]
//
// temp[i+2] = temp[i+1]
// temp[i+1] = temp[i]
// temp[0] = tab[i]
//
// temp[i+3] = temp[i+2]
// temp[i+2] = temp[i+1]
// temp[i+1] = temp[i]
//
//
// for(j=1;j<N;i++) {
// temp[N-j] = temp[N-1-j]
// }
//
// temp[0].age = tab[i].age;
// }
// }
/* Affichage après le tri : */
//printf("\nContenu apres le tri :\n ");
//for (j = 0; j <N ; j++)
// printf("%d", tab[j].age);
//printf("\n");
return 0;
} |
Partager