0
votes

Trouvez le plus grand et le plus petit élément de la flamboiliste d'une bufferedreader dactylographié

Je ne sais pas pourquoi je ne reçois pas le plus petit nombre. Le plus grand nombre est correct si EG.try: 129, 2, 3.

public static void main(String[] args) throws IOException {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    int list[] = new int[3];
    int min = list[0];
    int max = list[0];
    int input;

    for (input = 0; input < list.length; input++) {
        String s = reader.readLine();
        list[input] = Integer.parseInt(s);

        if (list[input] < min) {
            min = list[input];
        } else if (list[input] > max) {
            max = list[input];
        }
    }

    System.out.println("Smallet nummber: " + min);
    System.out.println("Biggest nummber: " + max);
}


1 commentaires

@TUSUSHAR_Lokare L'IDE que OP peut ou non être utilisé n'a absolument rien à voir avec cela.


3 Réponses :


1
votes

Il suffit d'initialiser votre min et max comme ceci: xxx

modifie également la pièce de condition à ceci: xxx

lorsque vous m'initialisez avec LISTE [0] , MIN et MAX seront initialisés avec 0. MAINTENANT si vous donnez une valeur d'entrée inférieure à 0, seule la valeur min sera mise à jour. Sinon, la valeur minimale ne sera jamais mise à jour.


0 commentaires

0
votes

min est 0 et toujours plus petit que la liste [entrée]. Le boîtier:

if (list[input] < min) {


0 commentaires

1
votes

Lorsque vous initialisez un tableau comme ceci: xxx pré>

Tous ses éléments sont 0 code>. de
Donc, lorsque vous initialisez min et max: p> xxx pré>

vous attribuez aux deux 0 code>.
Si vous voulez garder une seule boucle pour obtenir une entrée et obtenir min code> et max code> vous pouvez faire ceci: p>

if (input == 0) {
    min = list[input];          
    max = list[input];
} else if (list[input] < min) {
    min = list[input];
} else if (list[input] > max) {
    max = list[input];
}


1 commentaires

Merci pour une explication plus poussée.