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 : 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 )
code:
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 +" )");
		}
	}	
 
}
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 =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 +" )");
		}
	}	
 
}
erreur pourtant ma variable indique bien 5
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)