größte eingelesene Zahl ausgeben lassen

Joptionpane

Aktives Mitglied
Abend an alle,
bin wiedermal am üben:
Es sollen n Zahlen eingelesen werden(bis 0 eingegeben wird). Die größte soll ausgegeben werden.
Mein Ansatz war es, die eingelesenen Zahlen in einem array zu speichern und in einer Methode wird dann jede Zahl im Array miteinander verglichen und der größte zu schluss zurückgegeben.
Komm aber nicht weiter... Außerdem wird mir der S.o.p beim maximum angemeckert(hab ich extra kommentiert).

Ich hoffe mal, dass das Programm soweit einigermaßen gut aussieht(bis auf das was mir fehlt)^^

lg

Java:
package uebung1;



	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean flag = true;

		do {
			System.out.println("Bitte eine Zahl eingeben und ENTER drücken(bei 0 wird aufgehört):");
			int x = sc.nextInt();
			int[] Zahl = new int[x];

			if (x == 0) {
				flag = false;
			}
		} while (flag);

		System.out.println(maximum));(//fehlt etwas

	}

	public static int maximum(int[] feld) {

		int z = feld[0];

		for (int i = 0; i < feld.length; i++) {
			for (int j = 0; j < feld.length; j++) {

				if (feld[i] > feld[j]) {
					z = feld[i];
				} else {

					z = feld[j];
				}
			}

		}

		return z;
	}

}
 

HimBromBeere

Top Contributor
Du überschreibst dein int-Array andauernd, mit jedem Schleifendurchlauf erstellst du es neu (in der Größe der eingegebenen Zahl). Du musst dein Feld also außerhalb der Schleife definieren und es dann an die Max-Funktion übergeben...
Die Zuweisung zum Feld machst du mit sowas wie
Code:
Zahl[i++] = x;
wobei du i noch außerhalb als int definieren musst.
Die Übergabe an die Funktion sieht so aus:
Code:
maximum(Zahl);

Das blöde am Feld ist allerdings, du musst eine Größe angeben, also trag am Anfang eine feste Größe (z.B. 100) ein (oder definiere eine Liste, da ist das Hinzufügen dann einfacher)...


Hoffe, das reicht dir erstmal an Anstoß
 

Fab1

Top Contributor
Hi,

Statt einem Array würde ich auf eine ArrayList zurück greifen. Wie HimBromBeere bereits gesagt hat musst du einem Array immer eine entsprechende Größe mitgeben. Das ist natürlich sehr unflexibel. Man kann natürlich jedes mal ein neues Array erstellen wie du es gemacht hast, aber das ist nicht sehr performant.
Hier ist eine ArrayList ) sehr hilfreich. Diese ist ähnlich wie ein Array allerdings kann man dynamisch Elemente hinzufügen add() und entfernen remove()

Diese musst du natürlich dann als Übergabe Parameter in der Methode maximum definieren. Und beim Aufruf dann einfach übergeben.

Ich hab deine Version jetzt mal aufgegriffen und etwas abgeändert. Sollte so funktionieren, zumindest bei mir.

Ich vergleiche die erste Zahl mit dem Rest, ist eine Zahl größer wie die Erste, dann wird die neue Größere Zahl mit dem Rest verglichen (nicht wieder von Anfang an)


Java:
	public static void main(String[] args) {

		ArrayList<Integer> zahlenListe = new ArrayList<Integer>();

		Scanner sc = new Scanner(System.in);
		boolean flag = true;

		do {
			System.out
					.println("Bitte eine Zahl eingeben und ENTER drücken(bei 0 wird aufgehört):");
			int x = sc.nextInt();
			zahlenListe.add(x);

			if (x == 0) {
				flag = false;
			}
		} while (flag);

		System.out.println(maximum(zahlenListe)); // fehlt etwas

	}

	public static int maximum(ArrayList<Integer> feld) {

		int z = feld.get(0);

		for (int i = 0; i < feld.size(); i++) {
			if (z < feld.get(i)) {
				z = feld.get(i);
			}
		}

		return z;
	}

}
 

Xeonkryptos

Bekanntes Mitglied
Außerdem würde ich nach jeder Eingabe prüfen, ob die Zahl größer ist. So ersparst du dir ein Array und benötigst nur 2 Variablen, die du vergleichst und wenn die alte kleiner als die neu eingegebene ist, dann einfach ersetzen, ansonsten behalten und weiterprüfen mit der nächsten Eingabe. Ist einfacher.
 

HoaX

Top Contributor
Ich würde die Listen/Array weg lassen und gleich in der Schleife prüfen ob die eingegebene Zahl größer ist als das bislang gemerkte Maximum und dann ggf. die neue Zahl merken.
Java:
int max = Integer.MIN_VALUE;
while(true) {
    int i = holeNächsteZahl();
    if (i == 0) break;
    if (i > max)
        max = i;
}
System.out.println("Maximum: " + max);
 

HimBromBeere

Top Contributor
Das beudeutet allerdings, dass du die ganzen anderen Zahlen im Feld verlierst... sofern du nur das Maximum brauchst, ist das aber eine schlaue Alternative; brauchst du die ursprünglcieh Zahlen noch, wirst du um eine Liste nicht drumrum kommen.
 
Zuletzt bearbeitet:

Joptionpane

Aktives Mitglied
Bei der Aufgabenstellung ging es halt darum, eine Methode zu benutzen. Ob Array oder nicht war uns überlassen (wollt es mit Arrays probieren). ArrayList hatten wir leider noch nicht in der Vorlesung, sprich würde mir nicht viel bringen, dennoch siehts gut aus.
Meine jetztige Version läuft, jedoch gibt er mir IMMER den vorletzten Wert raus, egal was ich eingebe...

Java:
package uebung1;

import java.util.Scanner;

public class GrößteZahl {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	//	boolean flag = true;
		
		int[] Zahl = new int[6];
		for (int i = 0; i<=Zahl.length-1;i++){
			
			System.out.println("Bitte " + (i+1) + "  Zahl eingeben und ENTER drücken:");
			int x = sc.nextInt();
			Zahl[i] = x;
		/*
			
			if (x == 0) {
				flag = false;
			
		} while (flag);
		*/
		}
		System.out.println(maximum(Zahl));

	}

	public static int maximum(int[] feld) {

		int z = feld[0];

		for (int i = 0; i < feld.length-1; i++) {
			for (int j = 0; j < feld.length-1; j++) {

				if (feld[i] > feld[j]) {
					z = feld[i];
				} else {

					z = feld[j];
				}
			}

		}

		return z;
	}

}
 

HimBromBeere

Top Contributor
du brauchst nur eine Schleife in deiner max-Funktion: darin prüfst du, ob das aktuelle (das i-te) Element größer als das bisherige Maximum ist. Sollte dem so sein, ersetzt du das aktuelle Maximum mit dem neuen Wert, ansonsten fahre einfach fort mit dem nächsten Schleifendurchlauf (was auch im Fall der Ersetzung gemacht werden muss, natürlich...).


Etwas derart:

Java:
 public static int maximum(int[] feld) {
 
int max = 0;        
    for (int i = 0; i < feld.length-1; i++) {
        if (feld[i] > max) max = feld[i]; 
    }
    return max;
}
 
Zuletzt bearbeitet:

Joptionpane

Aktives Mitglied
Jop, hab zu kompliziert nachgedacht^^
Funzt einwandfrei jetzt.
Würde es jetzt noch gehen solange Zahlen einzulesen bis man 0 eingibt ohne, dass die Arraylänge zuvor bekannt ist? Oder "muss" man den festlegen(ohne arraylist jetzt)?


Java:
package uebung1;

import java.util.Scanner;

public class GrößteZahl {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
	//	boolean flag = true;
		
		int[] Zahl = new int[6];
		for (int i = 0; i<=Zahl.length-1;i++){
			
			System.out.println("Bitte " + (i+1) + "  Zahl eingeben und ENTER drücken:");
			int x = sc.nextInt();
			Zahl[i] = x;
		/*
			
			if (x == 0) {
				flag = false;
			
		} while (flag);
		*/
		}
		System.out.println(maximum(Zahl));

	}

	public static int maximum(int[] feld) {

		int max = feld[0];

		for (int i = 0; i < feld.length; i++) {
		
				if (feld[i]> max) {
					max = feld[i];
				
			}

		}

		return max;
	}

}
 

HimBromBeere

Top Contributor
Für ein Array MUSST du eine konstante Größe angeben, also wenn du das erreichen willst, musst du schon eine grpße Zahl als Anfangsgröße angeben, in der Hoffnung, dass niemand mehr als 1000Zahlen eingeben will :D
 

Joptionpane

Aktives Mitglied
jop jetzt gehts wie ich es mir gewünscht habe :D (bis auf die länge des arrays^^)

danke an alle :))

Java:
package uebung1;

import java.util.Scanner;

public class GrößteZahl {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		boolean flag = true;
		
		int[] Zahl = new int[100];
		
	//	for (int i = 0; i<=Zahl.length-1;i++){
			
			
			int i = 0; 
		do{
			System.out.println("Bitte Zahl eingeben und ENTER drücken:(bei 0 wird gestoppt)");
			int x = sc.nextInt();
			Zahl[i++] = x;
			
			
			if (x == 0) {
				flag = false;
			}
		} while (flag);
		
		
		System.out.println(maximum(Zahl));

}

	public static int maximum(int[] feld) {

		int max = feld[0];

		for (int i = 0; i < feld.length; i++) {
		
				if (feld[i]> max) {
					max = feld[i];
				
			}

		}

		return max;
	}

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
C Größte Zahl aus einem Array ermitteln(als statische Methode) Java Basics - Anfänger-Themen 31
J Die größte Zahl anzeigen Java Basics - Anfänger-Themen 19
H Größte Duplikat (Größte Doppelte Wert) eines Arrays ausgeben Java Basics - Anfänger-Themen 9
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
kilopack15 Größte zahl eines Arrays finden Java Basics - Anfänger-Themen 1
J In einem Array die größte Zahl ermitteln und Faktorisieren. Java Basics - Anfänger-Themen 5
C Felder(Größte Zahl, Index) Java Basics - Anfänger-Themen 6
T Größte und 2. Größte zahl Addieren Java Basics - Anfänger-Themen 29
A Bitte! This ist wohl das größte Hindernis in Java Java Basics - Anfänger-Themen 19
G Rekursiv die größte Zahl eines Arrays Java Basics - Anfänger-Themen 6
O Größte zahl aus array ermitteln Java Basics - Anfänger-Themen 6
M Files löschen - alle, ausser das größte! Java Basics - Anfänger-Themen 3
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
J Eingelesene Datei im Histrogramm darstellen Java Basics - Anfänger-Themen 3
A Methoden Zugriff auf eingelesene Variablen in der main Methode (ohne Änderung der Parameterliste) Java Basics - Anfänger-Themen 4
Rayo Eingelesene Ascii Zahlen wie normale Zahlen prüfen Java Basics - Anfänger-Themen 4
D Eingelesene Datei verarbeiten Java Basics - Anfänger-Themen 11
A eingelesene String in buchstaben teilen Java Basics - Anfänger-Themen 9
S Von der Tastatur eingelesene Strings miteinander vergleichen Java Basics - Anfänger-Themen 4
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
G Bei dynamischer Arrayliste nach jeder Auswahl Zahl entfernen Java Basics - Anfänger-Themen 3
M Long-Typ in String-Änderung führt zu keinem Ergebnis bei großer Zahl Java Basics - Anfänger-Themen 11
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
B Überprüfung dass Zahl nur aus 0,1 besteht Java Basics - Anfänger-Themen 2
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
B Hashmap richtig bauen, die Tripel auf Zahl abbildet? Java Basics - Anfänger-Themen 10
B 49-bit-zahl mit genau 6 Einsen bauen? Java Basics - Anfänger-Themen 21
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
Thomas06 Wie kann man mithilfe von boolean herausfinden ob eine zahl durch 5 und 7 teilbart ist ? Java Basics - Anfänger-Themen 7
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
M zahl raten Java Basics - Anfänger-Themen 1
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
H Erste Schritte Nach einer Zahl n soll n Mal der String untereinander ausgegeben werden Java Basics - Anfänger-Themen 3
I Zahl aufrunden (Zeit) Java Basics - Anfänger-Themen 43
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
D Gerade oder ungerade Zahl mittels Methoden Java Basics - Anfänger-Themen 13
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
R Fortlaufende Zahl Java Basics - Anfänger-Themen 3
A Wenn eine Zahl durch 7 teilbar ist, soll statt der Zahl ein ‘*‘ angezeigt werden. java? Java Basics - Anfänger-Themen 47
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
I String Kombination erstellen anhand fortlaufender Zahl (Vertragsnummer) Java Basics - Anfänger-Themen 13
B Methoden Rekursiv festellen, ob eine Zahl gerade-oft vorkommt oder nicht Java Basics - Anfänger-Themen 4
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
HelpInneed Zahl. Java Basics - Anfänger-Themen 2
R Perfekte Zahl Java Basics - Anfänger-Themen 8
D Mittlerste Zahl Java Basics - Anfänger-Themen 17
D Grösste Zahl in einer Folge herausfinden. (ULAM) Java Basics - Anfänger-Themen 9
Poppigescorn Häufigkeit einer zahl zählen Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
Poppigescorn scan.nextInt() wiederholen bis eine Zahl eingeben wird Java Basics - Anfänger-Themen 7
J Verdoppeln einer Zahl (in dem Fall Münzen) Java Basics - Anfänger-Themen 4
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
Abraham42 Prozentsatz einer Zahl mehrmals Java Basics - Anfänger-Themen 2
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
V Beliebige Dreistellige Zahl Teiler finden Java Basics - Anfänger-Themen 4
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
W Random Zahl unter Berücksichtung eines Durchschnitts Java Basics - Anfänger-Themen 7
S Zahl eingeben Java Basics - Anfänger-Themen 8
A Java . punkt neben einer Zahl. Java Basics - Anfänger-Themen 1
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
L Erhöhung der Zahl Java Basics - Anfänger-Themen 3
F Negative Zahl erzwingen Java Basics - Anfänger-Themen 3
N Eine Zahl solange teilen bis es nicht möglich ist und die Ergebnisse ausgeben Java Basics - Anfänger-Themen 23
T Eulersche Zahl e Java Basics - Anfänger-Themen 5
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
B Eine ganze Zahl zerlegen. Java Basics - Anfänger-Themen 4
J Fehler beim generieren von 4 Zufallszahlen Zahl doppelt ist eigentlich ausgeschlossen Java Basics - Anfänger-Themen 9
H Harshad-Zahl (Nivenzahl) und Palindrom überprüfen Java Basics - Anfänger-Themen 2
I Wie viele 1 an Bits hat die Zahl x? Java Basics - Anfänger-Themen 5
A Gewürfelte Zahl ausgeben Java Basics - Anfänger-Themen 10
M Rationale Zahl erkennen - Kurze Frage zum Restwert nach Division Java Basics - Anfänger-Themen 3
A Überprüfen, ober eine Zahl Ziffer enthält Java Basics - Anfänger-Themen 12
O Markoff-Zahl Java Basics - Anfänger-Themen 22
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
L 10-Stellige Zahl hochzählen lassen Java Basics - Anfänger-Themen 1
H String und Zahl Java Basics - Anfänger-Themen 10
R Zahl 1 bis 100 erraten Java Basics - Anfänger-Themen 12
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
J Button klick bei eine bestimmten Zahl Java Basics - Anfänger-Themen 8
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
H OOP eine Zahl immer weiter durch 2 teilen Java Basics - Anfänger-Themen 15
J Für jeden Buchstaben eine Zahl Java Basics - Anfänger-Themen 1
H Würfelspiel, stop bei gleicher Zahl Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben