Effectivement, il y a beaucoup a faire. J'vais pas te donner du tout cuit mais il faut bien commencer quelque part, donc deja commencons par ca:
void affiche_classement_course(String nombre_candidats, String nom_candidats, double temps_h){
println("Il y a " +nombre_candidats+ " candidats."+" Leurs noms sont" +nom_candidats);
println("Le classement est:" );
} |
Tu ne respectes pas l'enonce, vu qu'il parle de passer un nombre et deux tableaux a la fonction. Pour respecter l'enonce, la declaration des parametres devrait etre:
void affiche_classement_course(int nombre_candidats, String[] nom_candidats, double[] temps_h){ |
On va supposer que les parametres passes sont coherents: la taille des deux tableaux correspond au nombre de candidats (ca sera a toi de t'en assurer dans ta fonction main).
Evidemment, ton probleme immediat devient que tu ne peux plus utiliser ton println tel quel vu que nom_candidats est maintenant un tableau. Tu vas donc devoir passer par une boucle, ce qui n'est pas un probleme puisque tu connais le nombre de candidats. L'algo va donc etre du genre:
println("Il y a "+nombre_candidats+" candidats." );
for (int i=0; i<nombre_candidats; i++) {
println("Nom: "+nom_candidats[i]+" Temps: "+temps_h[i]);
}
|
Cet algo se contente d'afficher - a toi d'y ajouter le triage des temps (et des noms en meme temps pour etre sur que les infos des deux tableaux continuent de correspondre) avant d'afficher. Et aussi de "transformer" les doubles de temps_h[] pour en faire quelque chose de visuellement parlant quand ils sont affiches (ex: "1:20:00" plutot que "1.333333333" - a toi de definir ton format d'affichage).
Maintenant, quelques pistes pour ton main():
void main() {
println ("Combien de candidats participent à la course ?" );
String nombre = readString();
// Il faut verifier que l'utilisateur a bien rentre un entier positif et superieur a 1, et lui faire re-rentrer si ce n'est le cas, jusqu'a avoir un entier positif.
// C'est pas seulement pour faire joli: sans un entier positif, le reste de ton algo va planter.
// Pour rentrer les noms et temps des candidats, tu peux te baser sur le nombre de candidats, et faire une boucle pour la saisie des candidats.
// Du coup il te faut avoir tes tableaux de declares avant la boucle
String[] nom = new String[nombre];
double[] temps = new double[nombre];
// maintenant la boucle: for(int i=0; i<nombre; i++) {
println("Quels sont les noms des candidats?" );
String nom[i]= readString();
println("Quel temps les candidats ont mis ?" );
// vas-tu vraiment demander de rentrer un double (non "parlant" ) ou plutot une String ayant un certain format (ex: "1:10:57" ) que tu vas ensuite transformer en double?
double temps[i]=readInteger();
// } (fin de la boucle d'entree des candidats)
affiche_classement_course(nombre, nom, temps);
} |
Ca devrait deja t'aider a avancer pas mal.
---------------
C'était vraiment très intéressant.