ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
584
584
EMPFEHLEN
-
Hallo,
ich möchte aus einem Array mit 10 Elementen das Element mit dem größten
Wert ausgeben.
Mein Algorithmus funktionier aber nicht.
Weiß jemand warum?
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
public static void main(String[] args) { int[] sucheMax = {1,8,4,5,6,14,4,2,1,12}; int maximum = 0; int i; for(i=0; i<=sucheMax.length-1;i++) { if(sucheMax[i]> sucheMax[maximum]) { maximum = sucheMax[i]; } } System.out.println("Die größte Zahl ist "+maximum); }
Ich bekomme immer eine ArrayOutOfBoundException.
lg Mina
-
das muss heißen maximum= i;Code :
1 2 3 4 5 6
int[] sucheMax = {1,8,4,5,6,14,4,2,1,12}; // more stuff if(sucheMax[i]> sucheMax[maximum]) { maximum = sucheMax[i]; }
maximum enthaelt bei dir den Index in das Array sucheMax. Mit der Zuweisung hast du allerdings den bisher maximalen Wert als neuen Index benutzt. Das ist aber falsch.
HTH
-
20.08.05 20:30 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.885
- Blog-Einträge
- 29
Hallo!
ich würde das einfach so abändern:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
/** * @param args */ public static void main(String[] args) { int[] sucheMax = { 1, 8, 4, 5, 6, 14, 4, 2, 1, 12 }; int maximum = 0; for (int i = 0, current = 0; i < sucheMax.length; current=sucheMax[i++]) { if (current > maximum) { maximum = current; } } System.out.println("Die größte Zahl ist " + maximum); }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Bitte den Thread Richtung Unterforum "Algorithmen und Datenstrukturen mit Java" verschieben. (Ist das eine Meldung wert?)
-
es sollte angesichst des Wertebereichs glaube auch für negative Zahlen gehen, also entweder in deinem
Zitat von Thomas Darimont
Code maximum mit sucheMax[0] oder Integer.MIN_VALUE initialisieren oder kabel2's Variante
Gruß
RedWing"I'm not deaf, I'm ignoring you"
----
-
22.08.05 12:15 #6
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.885
- Blog-Einträge
- 29
Hallo!
jo, da hast du recht:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
/** * @param args */ public static void main(String[] args) { int[] sucheMax = { 1, 8, 4, 5, 6, 14, 4, 2, 1, 12 }; int maximum = Integer.MIN_VALUE; for (int i = 0, current = Integer.MIN_VALUE; i < sucheMax.length; current=sucheMax[i++]) { if (current > maximum) { maximum = current; } } System.out.println("Die größte Zahl ist " + maximum); //Das minimum gäbs dann dementsprechend über: int minimum = Integer.MAX_VALUE; for (int i = 0, current = Integer.MAX_VALUE; i < sucheMax.length; current = sucheMax[i++]) { if (current < minimum) { minimum = current; } } System.out.println("Die kleinste Zahl ist " + minimum); }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Danke für eure Antworten!
Inzwischen funktioniert mein Algo.
lg
MinaMurray
Ähnliche Themen
-
Popup funktoniert nicht
Von alex130 im Forum Javascript & AjaxAntworten: 8Letzter Beitrag: 03.11.07, 15:13 -
Cronjob funktoniert nicht
Von alex130 im Forum Hosting & WebserverAntworten: 4Letzter Beitrag: 08.10.07, 15:45 -
Mysql Update funktoniert nicht
Von alex130 im Forum PHPAntworten: 14Letzter Beitrag: 03.06.07, 16:13 -
5.1 Sound funktoniert der Bass/Cener nicht
Von SiNiE im Forum Microsoft WindowsAntworten: 10Letzter Beitrag: 13.12.04, 20:05 -
Suchalgorithmus (straight sort) nicht ganz
Von mille im Forum Delphi, Kylix, PascalAntworten: 0Letzter Beitrag: 13.01.04, 18:26





Zitieren

Login





