Alors je pense que c'est que j ai dépassé la capacité du tableau pourtant,si j initialise nbrEtudiant = 0, j ai "outofbound"lors de l'éxécution pourtant le print m'indique bien la bonne valeur entrée au clavier,si j'initialise nbrEtudiant = 8,que j entre 2 àu clavier mon print m 'indique 2 et je ne peut rentrer que 2 valeurs ce qui est normal comme je réinitialise ma variable nbrEtudiant et tout marche ,alors pourquoi avec nbrEtudiant= 0 j ai un soucis alors que j ai une valeur entrer au clavier et qui apparait dans le print
merci pour vos réponses
exécution du code
code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Donnez le nombre d'étudiant : 2 2 Note de létudiant N°1 : 15 2 Note de létudiant N°2 : 10 Moyenne de classe = :12.5 Etudiant : note :( écart avec la moyenne ) Etudiant N1 :15.0 : (2.5 ) Etudiant N2 :10.0 : (-2.5 )
avec la variable nbrEtudiant initialisé à 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import java.util.Scanner; public class Moyenne { private static Scanner clavier = new Scanner(System.in); public static void main(String[] args) { //attributs initialisation int nbrEtudiants =8; double moyenne = 0.0; double somme = 0.0; double ecart = 0.0; double []notes = new double [nbrEtudiants]; //demande le nbr d'étudiant à l'utilisateur System.out.print("Donnez le nombre d'étudiant : "); nbrEtudiants = clavier.nextInt(); //parcours du tableau pour entrer les notes for (int i = 0; i < nbrEtudiants; i++) { System.out.println(nbrEtudiants); System.out.print(" Note de létudiant N°"+(i+1)+" : "); //on stocke la note dans la i(eme) case du tableau ; notes[i] = clavier.nextDouble(); somme += notes[i]; } //affichage résultat moyenne = somme/nbrEtudiants; System.out.println("Moyenne de classe = :" +moyenne); System.out.println("Etudiant : note :( écart avec la moyenne )"); for (int i = 0; i < nbrEtudiants; i++) { ecart = notes[i]-moyenne; System.out.println("Etudiant N"+(i+1)+" :" +notes[i]+" : ("+ ecart +" )"); } } }
erreur pourtant ma variable indique bien 5
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 import java.util.Scanner; public class Moyenne { private static Scanner clavier = new Scanner(System.in); public static void main(String[] args) { //attributs initialisation int nbrEtudiants =0; double moyenne = 0.0; double somme = 0.0; double ecart = 0.0; double []notes = new double [nbrEtudiants]; //demande le nbr d'étudiant à l'utilisateur System.out.print("Donnez le nombre d'étudiant : "); nbrEtudiants = clavier.nextInt(); //parcours du tableau pour entrer les notes for (int i = 0; i < nbrEtudiants; i++) { System.out.println(nbrEtudiants); System.out.print(" Note de létudiant N°"+(i+1)+" : "); //on stocke la note dans la i(eme) case du tableau ; notes[i] = clavier.nextDouble(); somme += notes[i]; } //affichage résultat moyenne = somme/nbrEtudiants; System.out.println("Moyenne de classe = :" +moyenne); System.out.println("Etudiant : note :( écart avec la moyenne )"); for (int i = 0; i < nbrEtudiants; i++) { ecart = notes[i]-moyenne; System.out.println("Etudiant N"+(i+1)+" :" +notes[i]+" : ("+ ecart +" )"); } } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Donnez le nombre d'étudiant : 5 5 Note de létudiant N°1 : 8 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Moyenne.main(Moyenne.java:26)
Partager