# zweitgrößter Wert in array bestimmen



## Greenhorn (15. Jul 2011)

Hallo,

nun die letzte Aufgabe die ich im Rahmen meiner Klausurenvorbereitung nicht hinbekommen habe. Siehe Anhang Aufgabentext.

Hier mein erstes Versuch:


```
public static int zweitmax (int []a){
  if(a.length<2){
    return 0;
  }

  int max= 0;
  int max2=0;

  for(int i=1; i<a.length;i++){
     if(a[i]>a[i-1]){
       max=a[i];
     }
     if(a[b] > a[b-1] && a[b-1]<max){
       max2 = a[i];
     }
    if(max2==max){
       max2= max;
   }
  }
  return max;
}
```


----------



## Gast2 (15. Jul 2011)

b gibts nicht, wo kommt das her?


----------



## Greenhorn (15. Jul 2011)

Sorry b sollte auch i sein, wollte ursprünglich über eine while-Schleife und 2 Inices das array durchlaufen...


----------



## Gast2 (15. Jul 2011)

machs doch ganz straightforward:
(pseudocode)


```
public static int zweitmax(int[] a) {
	// Wenn länge von a < 2, return 0

	// max (größte zahl) und max2 (zweitgrößte zahl) initialisieren
        // Wenn a[0] > a[1]
            // max = a[0]
            // ma2 = a[1]
        // sonst
            // max = a[1]
            // ma2 = a[0]

        // Schleife über a von 2 bis a.length-1
            // Wenn zahl größer als beide max, dann ??
            // Wenn zahl nur größer als max2, dann ??
            // sonst ???
	
	return max2;
}
```


----------



## Greenhorn (15. Jul 2011)

Merci, dann bin ich schonmal gar nicht so weit weg von der richtigen Lösung....


----------

