Adloun

programmation Java (école d'ingénieur) · Chapitre 12 · Exercice de TD

Notes au-dessus de la moyenne

Collections et génériques · niveau 1 (application)

Énoncé

Écrire un programme qui lit au clavier des notes (nombres décimaux) jusqu'à une note négative, les range dans une List<Double>, puis affiche le nombre de notes, leur moyenne avec deux décimales, et la liste des notes strictement supérieures à la moyenne. Que faut-il faire si aucune note n'est saisie ?

Corrigé


import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Exo2Moyenne {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Double> notes = new ArrayList<>();
        while (sc.hasNextDouble()) {
            double x = sc.nextDouble();
            if (x < 0) break;               // une note négative termine la saisie
            notes.add(x);
        }
        if (notes.isEmpty()) {
            System.out.println("Aucune note.");
            return;
        }
        double somme = 0;
        for (double n : notes) somme += n;
        double moyenne = somme / notes.size();
        List<Double> dessus = new ArrayList<>();
        for (double n : notes) if (n > moyenne) dessus.add(n);
        System.out.printf("%d notes, moyenne %.2f%n", notes.size(), moyenne);
        System.out.println("au-dessus de la moyenne : " + dessus);
    }
}

Avec l'entrée 12 8.5 15 9 -1 :


4 notes, moyenne 11.13
au-dessus de la moyenne : [12.0, 15.0]

Sans note, la moyenne serait : le test notes.isEmpty() évite d'afficher NaN. On parcourt deux fois la liste : la moyenne n'est connue qu'à la fin de la saisie, c'est pourquoi il faut mémoriser les notes.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →