TP2 E5
This commit is contained in:
parent
62499d107f
commit
bc44b44f29
4
TP2/E2.c
4
TP2/E2.c
|
@ -42,5 +42,9 @@ int main() {
|
|||
}
|
||||
printf("\n");
|
||||
|
||||
// Ici j'ai crée un deuxième tableau Tp au lieu d'insérer X directement dans T
|
||||
// On aurait aussi pu parcourir le tableau T à l'envers et décaler les éléments
|
||||
// vers la droite jusqu'à k.
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
81
TP2/E5.c
Normal file
81
TP2/E5.c
Normal file
|
@ -0,0 +1,81 @@
|
|||
/* Structures et tableaux */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#define M 50 // Maximum d'étudiants stockables
|
||||
#define NB_UE 6 // Maximum d'étudiants stockables
|
||||
|
||||
|
||||
struct PEIP2 {
|
||||
char nom[26], prenom[26];
|
||||
long int nip;
|
||||
float notes[NB_UE];
|
||||
} etudiant[M];
|
||||
|
||||
float coeffs[NB_UE] = {1, 2, 1, 2, 3, 1};
|
||||
|
||||
void saisie(int i) {
|
||||
printf("Nom : ");
|
||||
scanf("%s", &etudiant[i].nom);
|
||||
printf("Prénom : ");
|
||||
scanf("%s", &etudiant[i].prenom);
|
||||
printf("NIP : ");
|
||||
scanf("%ld", &etudiant[i].nip);
|
||||
int iu;
|
||||
for (iu = 0; iu < NB_UE; iu++) {
|
||||
printf("Note dans l'UE %i (coeff %f) :", iu+1, coeffs[iu]);
|
||||
scanf("%f", &etudiant[i].notes[iu]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
void lire(int i) {
|
||||
printf("Nom, Prénom : %s, %s\n", etudiant[i].nom, etudiant[i].prenom);
|
||||
printf("NIP : %ld\n", etudiant[i].nip);
|
||||
int iu;
|
||||
double somme = 0;
|
||||
double sommeCoeffs = 0;
|
||||
for (iu = 0; iu < NB_UE; iu++) {
|
||||
somme += etudiant[i].notes[iu]*coeffs[iu];
|
||||
sommeCoeffs += coeffs[iu];
|
||||
printf("Note dans l'UE %i (coeff %f) : %f\n", iu+1, coeffs[iu], etudiant[i].notes[iu]);
|
||||
}
|
||||
printf("Moyenne générale : %f\n", somme / sommeCoeffs);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
|
||||
int main() {
|
||||
|
||||
int i, nb;
|
||||
printf("Nombre d'étudiants : ");
|
||||
scanf("%d", &nb);
|
||||
if (nb < 1 || nb > M) {
|
||||
printf("Le programme ne peut stocker que jusque %i étudiants.\n", M);
|
||||
return 2;
|
||||
}
|
||||
|
||||
printf("-- Saisie des étudiants\n");
|
||||
for (i = 0; i < nb; ++i) saisie(i);
|
||||
|
||||
printf("-- Lecture des étudiants\n");
|
||||
for (i = 0; i < nb; ++i) lire(i);
|
||||
|
||||
|
||||
printf("-- Moyennes des UE\n");
|
||||
int iu;
|
||||
double sommeTotale = 0;
|
||||
double somme;
|
||||
for (iu = 0; iu < NB_UE; iu++) {
|
||||
somme = 0;
|
||||
for (i = 0; i < nb; ++i) {
|
||||
somme += etudiant[i].notes[iu];
|
||||
}
|
||||
printf("Moyenne de l'UE %i (coeff %f): %f\n", iu+1, coeffs[iu], somme/nb);
|
||||
sommeTotale += somme*coeffs[iu];
|
||||
}
|
||||
printf("Moyenne générale promo : %f\n", sommeTotale / NB_UE / nb);
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -9,6 +9,9 @@ E1-3.exe: E1-3.c
|
|||
E2.exe: E2.c
|
||||
gcc E2.c -o E2.exe
|
||||
|
||||
E5.exe: E5.c
|
||||
gcc E5.c -o E5.exe
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
clean:
|
||||
|
|
Reference in a new issue