Felder(Größte Zahl, Index)

Chrisi13

Mitglied
Betriebssystem : Windows XP
Programm : Eclipse Indigo
JDK Version: 1,6

Hallo zusammen,

ich bearbeite gerade eine Aufgabe bei der ich nicht so recht weiterweiss.Den ersten Aufgabenteil habe ich (glaube richtig!?) bereits erledigt und es scheint zu funktionieren.

Beim zweiten weiss ich nicht weiter. Hier mal die komplette Aufgabenstellung.

1.Teil
Entwickeln Sie ein Java-Programm, das zunächst ein ganzzahliges Feld beliebiger Größe
einliest. Dazu wird zuerst die gewünschte Größe des Feldes vom Benutzer erfragt und
mittels io.read_int() eingelesen, dann das Feld erzeugt, und anschließend werden der
Reihe nach die einzelnen Werte vom Benutzer erfragt, eingelesen und im Feld gespeichert.

Das habe ich so gemacht :
i
Java:
mport java.io.*;
public class Proben {

	public static void main(String[] args)throws IOException {
	BufferedReader leser = new BufferedReader (new InputStreamReader(System.in));
	
int[] feld; // Deklarieren des Feldes

System.out.println("Feldgröße eingeben:");
int index = Integer.parseInt(leser.readLine()); // index = Feldgröße einlesen

feld = new int[index]; // Feldgröße wird feld zugewiesen

for (int werte= 0 ; werte< feld.length ; werte++ ) 
	{
System.out.println("Wert eingeben:");
feld[werte] = Integer.parseInt(leser.readLine()); // Einlesen der Werte
		} 

	}
}

Alles richtig? 🙂

Nun zum zweiten Teil bei dem ich nicht weiss wie ich anfangen soll. Vlt noch eine for-Schleife verwenden?

2.Teil
Erweitern Sie das Programm jetzt so, dass nach dem Einlesen aller Zahlen die größte Zahl
und ihre Position im Feld (ihr Index) ausgegeben werden. Ist die größte Zahl mehrfach im
Feld enthalten, so soll als Position der Index ihres ersten Auftretens ausgegeben werden.

Bin für jede Hilfe / jeden Tipp dankbar.

Mit freundlichem Gruß
Chrisi13
 
ja mit einer Schleife. Du merkst dir den Index der größten Zahl ausserhalb der Schleife. Dann verlgleichst du die aktuelle Zahl mit der aktuell größten. Ist sie größer ist dieser index der neue aktuell größte...
 
Danke für die Hilfe,

bei mir scheiterts aber irgendwie an der Umsetzung

Dann verlgleichst du die aktuelle Zahl mit der aktuell größten

Wie kann ich die miteinander vergleichen weil z.B.

wenn ich jetzt als Feldgröße 3 auswähle und würde folgende zahlen zuweisen
INDEX IM FELD WERTE
feld [0] = 25
feld [1] = 35
feld [2] = 45

wie würde dann die auktuelle Zahl heissen? Weil Werte nimmt ja nach jedem for Schleifen einen anderen Wert an?
 
vor der Schleife erzeugst du dir eine Variable, die die größte Zahl speichert und in der Schleife vergleichst du dann mit allen Werten des Feldes, so zum Beispiel:

Java:
int max = feld[0];
for (int i = 1; i < feld.length; i++){
 if (feld[i] > max){
 max = feld[i];
}
}
 
Du benötigst zusätzlich noch eine Variable mit der Du Dir den Index der größten Zahl "merken" kannst.
In der Schleife durchläufst Du das Array und vergleichst den Wert im aktuellen Index mit dem Wert im gespeicherten Index. Wenn der aktuelle Wert größer ist, merkst Du Dir dessen Index in der zusätzlichen Variable.
 
Du benötigst zusätzlich noch eine Variable mit der Du Dir den Index der größten Zahl "merken" kannst.
In der Schleife durchläufst Du das Array und vergleichst den Wert im aktuellen Index mit dem Wert im gespeicherten Index. Wenn der aktuelle Wert größer ist, merkst Du Dir dessen Index in der zusätzlichen Variable.

Oh ja, ich hatte die Aufgabe nicht richtig durchgelesen... 😳
 

Neue Themen


Zurück
Oben