Probleme en java

Marc albert -  
Phortitou Messages postés 231 Statut Membre -
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

2 réponses

  1. danimo
     
    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 ?
    }
    }
    0
  2. Phortitou Messages postés 231 Statut Membre 27
     
    Danimo a raison, tu crées une variable boolean, mais tu l'utilises pas... Tu devrais ;)
    0