1
td2
medina5 edited this page 2025-10-10 13:35:34 +02:00
#include <stdio.h>
float calculMoyenne(int tab[5]) {
int somme = 0;
for (int i = 0 ; i < 5 ; i++) {
somme = somme + tab[i];
}
//return somme / 5; // 2 entiers -> entiers
//return somme / 5.0; // 1 entier 1 float -> float
return (float)somme / 5; // cast conversion de type
}
float calculMoyenneN(int tab[], int nb) {
int somme = 0;
for (int i = 0 ; i < nb ; i++) {
somme = somme + tab[i];
}
return (float)somme / nb; // cast conversion de type
}
void main() {
puts("Test de la fonction calculMoyenne");
int t1[5] = { 1, 1, 1, 1, 1 };
float r1 = calculMoyenne(t1);
printf("Attendu 1 ; calculé %f\n", r1);
int t2[5] = { 1, 2, 3, 4, 5 };
float r2 = calculMoyenne(t2);
printf("Attendu 3 ; calculé %f\n", r2);
int t3[5] = { 11, 8, 7, 13, 3 };
float r3 = calculMoyenne(t3);
printf("Attendu 8,4 ; calculé %f\n", r3);
//exit(0);
puts("Quelle est la taille du tableau");
int taille;
scanf("%d", &taille);
int tableau[taille]; // variable-length array (VLA)
// fonctionne que sur les versions récentes des compilateurs
int *tableauP; // Un pointeur = une entrée sur une zone mémoire
tableauP = malloc(taille * sizeof(int));
// sizeof(int) = 4 octets
// tableau 5 cases x 4 = 20 octets
puts("Bonjour entrer des valeurs :");
int p = 0;
int q = 1;
for (int i = 0 ; i < taille ; i++) {
tableau[i] = 0;
}
while (1) {
int valeur;
scanf("%d", &valeur);
if (valeur < 0) break;
printf("valeur saisie = %d\n", valeur);
tableau[p] = valeur;
p++;
if (p == taille) p = 0;
float moyenne = calculMoyenneN(tableau, q);
if (q < taille) q++;
printf("Moyenne = %f\n", moyenne);
}
free(tableauP);
}