programmation Java (école d'ingénieur) · Chapitre 2 · Application directe du cours
Une moyenne fausse
Types, variables et expressions · niveau 2
Énoncé
Un élève a obtenu , et . Le programme suivant affiche 13.0. Pourquoi ? Le corriger pour obtenir la vraie moyenne, puis l'afficher avec deux décimales.
int n1 = 12, n2 = 15, n3 = 14;
double moyenne = (n1 + n2 + n3) / 3;
System.out.println(moyenne);Corrigé
n1 + n2 + n3 vaut l'entier ; 41 / 3 est une division entre deux int, qui donne . Ce n'est qu'ensuite que est converti en double pour être rangé dans moyenne : la partie décimale est déjà perdue.
public class Moyenne {
public static void main(String[] args) {
int n1 = 12, n2 = 15, n3 = 14;
double fausse = (n1 + n2 + n3) / 3;
double juste = (n1 + n2 + n3) / 3.0;
System.out.println(fausse);
System.out.println(juste);
System.out.printf("%.2f%n", juste);
}
}
13.0
13.666666666666666
13.67
On aurait aussi pu écrire (double) (n1 + n2 + n3) / 3. Le type de la variable de gauche n'a aucune influence sur le calcul de droite.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.