Le problème est simple.
En C (et dans la plupart des langages de programmations) lorsqu'on divise une valeur entière par une autre valeur entière on a une division... Entière, le résultat est entier, il s'agit de la division euclidienne (a = bq + r --> a = b * (a / b) + (a % b)).
Le seul moyen d'avoir une division réelle, c'est qu'au moins l'une des opérandes soit un réel, il faut donc faire un cast :
fMoyenne = iAgeTotal / (float)(iMineur + iAgeOr + iCentenaire);
Un cast permet de changer le type d'une variable, ici l'addition deviendra donc un float, et la division sera donc une division réelle.
Partager