# Größten u. kleinsten Wert ermitteln



## glückspiratin (22. Apr 2007)

a) Zu schreiben ist eine JAVA-Application, die einen Array aus 10 int-Werten anlegt und diesen Array sofort bei seiner Definition mit beliebigen, unsortierten Werten initialisiert.
 			int meinArr[] = {56, 168, ...};

b) In diesem Array sind anschließend der größte und der kleinste Wert ausfindig zu machen und in folgender Form anzuzeigen:

Größter Wert in Position 2 und beträgt 168 
Kleinster Wert in Position 5 und beträgt 11



wie mach ich das? wie sieht das am schluss aus? hilfeeeeee


----------



## glückspiratin (22. Apr 2007)

hmm naja, so weit bin ich bis jetzt aber wie gehts weiter?



```
public class Aufgabe2a
{
	public static void main (String[] args)
	{
		int [] x = {12, 23, 34, 45, 56, 67, 78, 89, 90, 10};

	}

}
```


----------



## Marco13 (22. Apr 2007)

Eine etwas "spezifischere" Frage wäre nicht schlecht. Irgendwas, was zeigt, dass du es zumindest schon versucht hast. Die Frage "Wie ist die Lösung?" beantwortet man nur ungern...


----------



## Marcel_Handball (22. Apr 2007)

Um dir eine Anregung zu geben:


```
System.out.println(kleinste(x));
```


```
public static int kleinste(int zahlen[]){
	int kleinste=zahlen[0];
	 for(int i=1; i<zahlen.length; i++){
		if(zahlen[i]<kleinste){kleinste=zahlen[i];}
	 }
	return kleinste;
}
```


----------



## Jango (22. Apr 2007)

Schau dir mal die_ foreach_-Schleife an. Damit, und mit einer oder mehrerer _if_-Anweisungen bekommst du die Aufgabe ganz leicht hin.  :wink:


----------



## Marco13 (22. Apr 2007)

@Marcel_Handball: Auch wenn es "nur" eine Anregung und nicht die komlette Lösung sein sollte: Die Anregung geht in die falsche Richtung, da sie "inkompatibel" zur Aufgebenstellung ist.


----------



## Marcel_Handball (22. Apr 2007)

Weil die Feldposition fehlt?
Naja, aus diesem Grund ist es ja noch nicht gleich _inkompatibel_ :wink: .
(aber hast schon recht; das hab ich nicht bedacht)


```
System.out.println("Kleinster Wert in Position" +
" " + kleinste(x)[0] + " und beträgt " +kleinste(x)[1]);
```


```
public static int [] kleinste(int zahlen[]){
	   int kleinste=zahlen[0];
	   int feld=0;
	   
	    for(int i=1; i<zahlen.length; i++){
	      if(zahlen[i]<kleinste){kleinste=zahlen[i];feld=i+1;}
	    }
	   return new int []{feld,kleinste};
}
```


----------



## Ariol (22. Apr 2007)

glückspiratin hat gesagt.:
			
		

> hmm naja, so weit bin ich bis jetzt aber wie gehts weiter?
> 
> 
> 
> ...



Unsortiert????


----------



## masta // thomas (22. Apr 2007)

Ist es doch?


----------



## Desch (22. Apr 2007)

Tip: Schau dir in der API doch einfach mal die Klasse Random in java.util an  .
Damit und mit sowas Grundlegendem wie einer for-Schleife und einer if-Abfrage kommst du sicher auf die Lösung, wenn du etwas nachdenkst .


Hier ein Beispiel zu Random:


```
import java.util.Random;

[...]

Random zufall = new Random();

int[] zufallszahlen = new int[size];

for(int i=0; i<size; i++)
{
zufallszahlen[i] = zufall.nextInt(100);
}

[...]
```

bzw.


```
import java.util.Random;

[...]

Random zufall = new Random();

int[] zufallszahlen = {zufall.nextInt(100),zufall.nextInt(100),zufall.nextInt(100),zufall.nextInt(100), ........};

[...]
```


----------



## Marco13 (22. Apr 2007)

@Marcel_Handball: Das macht es IMHO nur noch schlimmer ... :roll:


----------



## Calimero (22. Apr 2007)

Weiß nicht ob Dir das weiterhilft. Wenn du die Werte in einen dynamischen Array (ArrayList) einliest, gibt es in der Klasse 'Collection' die Methoden
'E min(Collection c)' zum Ermitteln des Minimums und
'E max(Collection c)' zum Ermitteln des Maximums.


----------



## Marcel_Handball (22. Apr 2007)

@Marco13: was genau macht es noch schlimmer, verstehe nicht worauf du hinzielst.


----------



## Marco13 (22. Apr 2007)

Naja - da so einen 2-elementigen Array zurückzugeben finde ich persönlich ziemlich unschön. Was nun, wenn man einen Array von z.B: "Person"-Objekten hat, und die kleinste Person (und deren Index) ausgeben will? Man könnte ja auch einfach durch den Array laufen, und am Ende eine Ausgabe machen...


----------



## Leroy42 (23. Apr 2007)

```
public class Aufgabe2a { 
  public static void main (String[] args)    { 
    int [] x = {12, 23, 34, 45, 56, 67, 78, 89, 90, 10}; 
    // Suchen des kleinsten Wertes
    int minIndex = 0;
    for (int i=1; i < x.length; i++)
      if (x[i] < x[minIndex])
        minIndex = i;
    System.out.printf("Minimum bei x[%d] = %d%n", minIndex, x[minIndex]);
  } 
}
```


----------

