Probleme en java
Marc albert
-
Phortitou Messages postés 221 Date d'inscription Statut Membre Dernière intervention -
Phortitou Messages postés 221 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Les 20 participants a un concours se sont vus attribues un numero compris entre 1 et 20, ecrivez un programme qui lit leur score (sur 100), le programme affiche leur resultat et indique le gagnant, encas d egalite il affiche tous les resultats.
public class Exe7_5bis{
public static java.util.Scanner scanner = new java.util.Scanner(System.in);
public static void main(String[] args) {
int resultat, best=Integer.MIN_VALUE;
String numGagnant="";
boolean egal=false;
for(int i=1; i<21;i++){
resultat=unEntierAuHasardEntre(0,100);
System.out.println(i+" "+resultat);
if(resultat>best){
best=resultat;
numGagnant=" "+i;
egal=false;
}
if(resultat==best){
numGagnant=numGagnant+" "+i;
egal=true;
}
}
if(egal==true)System.out.println("les gagnants en ex-eaquo sont les n° "+numGagnant+" avec un score de "+best);
else System.out.println("le gagnant est le N°"+numGagnant+" avec un score de "+best);
}
public static int unEntierAuHasardEntre (int valeurMinimale, int valeurMaximale){
double nombreRéel;
int résultat;
nombreRéel = Math.random();
résultat = (int) (nombreRéel * (valeurMaximale - valeurMinimale + 1))
+ valeurMinimale;
return résultat;
}
}
Je ne comprend pas pourquoi il affiche 2 fois le resultat du gagnant lorsqu'il est seul. Merci d'avance
il m'affiche:
les gagnants en ex-eaquo sont les n° 15 15 avec un score de 100
Les 20 participants a un concours se sont vus attribues un numero compris entre 1 et 20, ecrivez un programme qui lit leur score (sur 100), le programme affiche leur resultat et indique le gagnant, encas d egalite il affiche tous les resultats.
public class Exe7_5bis{
public static java.util.Scanner scanner = new java.util.Scanner(System.in);
public static void main(String[] args) {
int resultat, best=Integer.MIN_VALUE;
String numGagnant="";
boolean egal=false;
for(int i=1; i<21;i++){
resultat=unEntierAuHasardEntre(0,100);
System.out.println(i+" "+resultat);
if(resultat>best){
best=resultat;
numGagnant=" "+i;
egal=false;
}
if(resultat==best){
numGagnant=numGagnant+" "+i;
egal=true;
}
}
if(egal==true)System.out.println("les gagnants en ex-eaquo sont les n° "+numGagnant+" avec un score de "+best);
else System.out.println("le gagnant est le N°"+numGagnant+" avec un score de "+best);
}
public static int unEntierAuHasardEntre (int valeurMinimale, int valeurMaximale){
double nombreRéel;
int résultat;
nombreRéel = Math.random();
résultat = (int) (nombreRéel * (valeurMaximale - valeurMinimale + 1))
+ valeurMinimale;
return résultat;
}
}
Je ne comprend pas pourquoi il affiche 2 fois le resultat du gagnant lorsqu'il est seul. Merci d'avance
il m'affiche:
les gagnants en ex-eaquo sont les n° 15 15 avec un score de 100
A voir également:
- Probleme en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
2 réponses
Bonjour,
Il ne manque vraiment pas grand-chose pour que ce soit bon.
Eaxaminons la boucle:
for(int i=1; i<21;i++){
resultat=unEntierAuHasardEntre(0,100);
System.out.println(i+" "+resultat);
if(resultat>best){
best=resultat; // <<<< best est le meilleur score
numGagnant=" "+i;
egal=false; // <<<< egal est forcé false, que se passe t-il après ?
}
if(resultat==best){ // <<<< resultat = best
numGagnant=numGagnant+" "+i;
egal=true; // <<<< egal est forcé true. Que manque t-il à ton avis entre les 2 tests ?
}
}
Il ne manque vraiment pas grand-chose pour que ce soit bon.
Eaxaminons la boucle:
for(int i=1; i<21;i++){
resultat=unEntierAuHasardEntre(0,100);
System.out.println(i+" "+resultat);
if(resultat>best){
best=resultat; // <<<< best est le meilleur score
numGagnant=" "+i;
egal=false; // <<<< egal est forcé false, que se passe t-il après ?
}
if(resultat==best){ // <<<< resultat = best
numGagnant=numGagnant+" "+i;
egal=true; // <<<< egal est forcé true. Que manque t-il à ton avis entre les 2 tests ?
}
}