Max und Min

Informatikanfänger12

Aktives Mitglied
Hallo,
Ihr Programm erhält per Kommandozeilenparameter die Anzahl der einzulesenden Zahlen und soll entsprechend viele Zahlen einlesen und anschließend das Minimum sowie Maximum der eingegebenen Zahlen zeilenweise ausgeben.

Also ich habe es so umgesetzt:

Java:
import java.io.*;

public class Main {
    public static void main(String args[]) throws IOException {
        int max;
        int min;
      
      
        BufferedReader ein = new BufferedReader(new InputStreamReader(System.in));
      
           int zahl = Integer.parseInt(args[0]);
      
      
        int feld [] = new int[zahl];
      
        for (int i=0; i<zahl; i++){
            feld[i]=Integer.parseInt(ein.readLine());
          
          
        }
      
      for (int i=0; i<zahl-1; i++){
           for (int j=1; j<zahl; j++){
             
               if(feld[j]<feld[i]){
                 
                   int speicher= feld[j];
                   feld[j]=feld[i];
                   feld[i]=speicher;
                 
                 
               }
          
            
              
        }
      
        }
      
max=feld[zahl-1];
            min=feld[0];
          
            System.out.println(max);
            System.out.println(min);
    }
}

Sieht jmd meinen Fehler:
Ich wollte das Array nach Größe sortieren und dann den 0. und n-1. Eintrag ausgeben.
 
Zuletzt bearbeitet:

JStein52

Top Contributor
Wenn du wirklich nur das Max. und Min. brauchst dann kannst du doch das einach in der Schleife in der du auch die Zahlen einliest bewerkstelligen und brauchst keine zusätzlichen Schleifen oder Sortierung
 

Javinner

Top Contributor
Informatikanfänger12 hat gesagt.:
for (int i=0; i<zahl-1; i++)
Das sieht nicht schön aus. Besser wäre es doch: i < feld.length
In der Schleife prüfst du dann jedoch nur eine Bedingung, das geht besser ;)
Schau dir das hier an:
https://javabeginners.de/Schleifen_und_Verzweigungen/Ternaerer_Operator.php
Java:
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
int[] array = {1, 0, -34, 2, 6, 34, 232, 4, -1, 423, 65};
for (int i = 0; i < array.length; i++) {
      //Dein Code
}
System.out.printf("Maximaler Wert: %d, minimaler Wert: %d%n", max, min);
/** Konsolenausgabe */
Maximaler Wert: 423, minimaler Wert: -34
 

JStein52

Top Contributor
Code:
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int i=0; i<zahl; i++){
            feld[i]=Integer.readLine());
            if (feld[i] < min) {
               min = feld[i];
            }         
            if (feld[i] > max) {
               max = feld[i];
            }        
}
System.out.println(max);
System.out.println(min);
 

JavaUndC-Prog

Bekanntes Mitglied
Alternativ für eine Arrayliste:

Java:
static ArrayList<Double> values = new ArrayList<Double>();

    static double min() {
        double min, temp;
        min = values.get(0);
        for(int i = 0; i < values.size(); i++) {
            temp  = values.get(i);
            if(min > temp) {
                min = values.get(i);
            }
        }
        return min;
    }
  
    static double max() {
        double max, temp;
        max = values.get(0);
        for(int i = 0; i < values.size(); i++) {
            temp  = values.get(i);
            if(max < temp) {
                max = values.get(i);
            }
        }
        return max;
    }
 

Neue Themen


Oben