This commit is contained in:
Geoffrey Frogeye 2016-02-03 10:24:35 +01:00
parent 62499d107f
commit bc44b44f29
3 changed files with 88 additions and 0 deletions

View file

@ -42,5 +42,9 @@ int main() {
} }
printf("\n"); 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; return 0;
} }

81
TP2/E5.c Normal file
View 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;
}

View file

@ -9,6 +9,9 @@ E1-3.exe: E1-3.c
E2.exe: E2.c E2.exe: E2.c
gcc E2.c -o E2.exe gcc E2.c -o E2.exe
E5.exe: E5.c
gcc E5.c -o E5.exe
.PHONY: all clean .PHONY: all clean
clean: clean: