Java,mon programme compile pas

Résolu/Fermé
domxaline - 13 août 2009 à 17:32
 domxaline - 14 août 2009 à 08:57
Bonjour,
ce programme qui demande à l' utilisateur d' entrer les notes sur 20 de 10 élèves d' une classe. Puis le programme affiche la moyenne de ces note,mais en compilant j'ai une erreur message suivant

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at Mesessaies.Toi1.main(Toi1.java:5)

import java.util.Scanner;
package Mesessaies;
public class Toi1
{
public static void main(String []args)
{
Scanner sc=new Scanner(System.in);
double[] notes=new double[10];double somme=0;
for(int i=0; i<notes.length; i++)
{
System.out.println("entrez une nouvellen note:");
notes.length=sc.nextInt();
somme+=notes[i];
}
System.out.println("moyenne des notes="+somme/notes.length);
}
}

Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at Mesessaies.Toi1.main(Toi1.java:5)
A voir également:

2 réponses

Bonjour,
Avec quoi compile-tu ton programme ? le message d'erreur ne correspond pas à celui d'un compilateur Sun 1.4, 15. ou 1.6.
tu débute manifestement (en plus d'être distrait), et je te conseille soit de copier un exemple de fichier java existant, ou de t'en faire générer un par un outil comme Eclipse.

En effet, ton programme contient deux erreurs grossières qui seraient détectées avant même la compilation par un outil comme Eclipse :

- Les lignes import et package sont inversées.
-tu essaie d'affecter une valeur nouvelle à notes.lenght qui est une variable non modifiable (final)

En plus une erreur non détectée par le compilateur :
-Tu déclare notes et somme en double, mais tu fais nextInt(), tu n'aura donc jamais de décimales.

quand à l'aspect conceptuel du programme, je ferais quelques remarques :

- Si tu n'a pas besoin du tableau des notes, ne le déclare pas et fait simplement quelque chose comme :
somme += nextDouble()

- Si par contre tu pense avoir besoin de garder les notes en mémoire, alors mets les dans une collection, qui a l'avantage de grossir au fur et à mesure qu'on la rempli. Utilise par exemple un ArrayList.
- Que fait tu s'il y a moins de 10 élèves ? il faut saisir des notes bidon ? Rajoute par exemple une variable entière "notecourante" et fait une boucle while à la place de ta boucle for, en faisant par exemple un test
while (noteCourante = nextDouble() ! >= 0)
Bon je n'écris pas tout, sinon tu n'apprendras rien !
good luck
0
merci beaucoup
0