C#: Kleinste Zahl eines Arrays ausgeben?

3 Antworten

Dein Wert "l" sollte nicht 1 sein. Sondern vor der Schleife den Wert von "meinArray[0]" haben. Die Schleife kannst du dann dementsprechend auch bei 1 (und nicht bei 0) loslaufen lassen.

Übrigens ist deine Variablenbenennung noch verbesserungswürdig. "l" ist zum einen schlecht, weil es recht nichtssagend ist und zum anderen, weil man das kleine "L" optisch leicht mit der Eins verwechseln kann. Ganz profimäßig wäre es, allen Variablen englische Namen zu geben, aber wenn "l" dann "kleinsterWert" heißt, dann wäre das auch schon ein Schritt nach vorne.

Ach ja, und kannst du deinen Algorithmus für die größte Zahl mal testen, wobei alle Zahlen, die du eingibst, negativ sind. Kriegst du dann auch noch das richtige Ergebnis? Falls nicht - für die Fehlerbehebung lies den ersten Absatz dieser Antwort nochmal. ;)

Also dein Algorithmus geht durch das Array und vergleich einen gespeicherten min-Wert und den aktuellen.

Richtiger Ansatz.

Aber.. ist die 0, mit der du die Variable initialisierst nicht immer kleiner? (Außer du hast nur negative zahlen im Array, dann ist das natürlich nicht so wichtig)

Freshanddopehh 
Fragesteller
 20.01.2020, 18:41

Und wie bekomme ich das richtig hin?

Habe echt kein Plan.

0
XGamer11208  20.01.2020, 18:42
@Freshanddopehh

Was genau verstehst du nicht?

Wenn ich ein Array habe mit [1,2,3,4], dann ist die kleinste Zahl die 1.
Wenn ich aber die minZahl starte mit 0, dann wird die 0 doch immer kleiner sein.

minZahl = 0
0 < 1
0 < 2
0 < 3
0 < 4
=> minZahl ist 0

1

Array.Sort(meinArray);

int min = meinArray[0];

Woher ich das weiß:Studium / Ausbildung – Informatikstudent
bluebird5  20.01.2020, 19:32

Deine Lösung funktioniert und ist einfach verständlich, ist aber von der Laufzeit her nicht optimal. Bei dem kleinen Beispielarray aus der Frage fällt das nicht ins Gewicht, aber wenn das Array größer wird, dann ist das Sortieren aufwändiger als einmal stumpf durch das Array durchzulaufen und den größten/kleinsten Wert rauszusuchen.

0