Applet, welches Maximum eines Array bestimmt

  • Themenstarter Themenstarter belimo
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
B

belimo

Gast
Hallo Leute

Ich versuche gerade ein Applet zu schreiben, welches mir das Maximum eines int-Array zurückgibt (ohne die Funktion max zu verwenden). Leider gibt das resultat immer temp = 0. Kann mir jemand sagen, wo mein Überlegungsfehler liegt? Bin dankbar für jeden Tipp

Code:
public class summe extends Applet {
	
	int [] werte = {12,34,2,23,6,7,9,4,-4,8};
	
	public void init() {
	}

	public void paint(Graphics g) {
		
		g.drawString("Das Maximum ist: " + max(werte), 70, 70);
		
	}
	
	public int max (int [] werte) {
	int temp = 0;
		for (int i = 0; i < werte.length; i++) {
			
			for (int k = 1; k > (werte.length - 1); k++) {			
				if (werte[i] > werte[k]) {
					temp = werte[i];
				} else {
					temp = werte[k];
				}
			}
		}	
		
		return temp;	
				
	} 
	
}
 
Code:
public class summe extends Applet {
   
   int [] werte = {12,34,2,23,6,7,9,4,-4,8};
   
   public void init() {
   }

   public void paint(Graphics g) {
      
      g.drawString("Das Maximum ist: " + max(werte), 70, 70);
      
   }
   
   public int max (int [] werte) {
   int temp = Integer.MIN_VALUE;
   
      for (int i = 0; i < werte.length; i++) {
         if(werte[i] > temp) temp = werte[i];
      }   
      
      return temp;     
   }
   
}

Ich bin mir jetzt nicht ganz sicher, was Du da mit k in der zweiten Schleife machen wolltest, aber ich denke, das hier hilft Dir eher weiter. Er läuft von vorne bis hinten durch das Array und wenn ein Wert größer als temp ist, wird temp auf diesen Wert gesetzt, also hast Du am Ende in temp die höchste Zahl liegen, die zurückgegeben wird. (temp wird bei mir mit Integer.MIN_VALUE belegt, das ist der tiefste Wert den Integer anzeigen kann, damit Du auch Ergebnisse der höchsten Zahl bekommst, wenn alle negativ sind)
 
Naja, ich wollte zuerst den index[0] mit allen grösseren vergleichen, und dann den index[1] mit allen grösseren, dann den index[2] usw.

Die eine Schleife ist also fürs Hochzählen 0, 1, 2 usw... und die zweit für das Vergleichen aller übrigen werte mit dem einen Index ;-) Irgendwie zu kompliziert.

Klar, auf deine Idee mit dem Integer.MIN_VALUE bin ich nicht gekommen. Danke für die Hilfe.

[schild=1]Danke![/schild]
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben