Arrays programmieren in C?

... komplette Frage anzeigen

5 Antworten

Geh mit einer Schleife durch das Feld. Speicher immer die kleinste Variable mit. Wenn eine kleiner, ist speicher diesen Wert auf die Variable. Am Ende hast du den kleinsten Wert.

Antwort bewerten Vielen Dank für Deine Bewertung

Nimm doch einfach qsort:

// Vergleichsfunktion:
int cmp(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}

// Array gefüllt mit Beispielwerten:
int arr[] = {9, 1, 5, 7, 3};

// Sortieren:
qsort(arr, 5, sizeof(int), cmp);

// Ausgabe:
printf("Kleinstes Element: %d\\n", arr[0]);

Ich bin einfach mal davon ausgegangen, dass deine Arrayelemente den Typ int haben, aber es funktioniert natürlich auch mit jedem anderen Typ! :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von TeeTier
13.11.2015, 18:49

PS: Die Methode aus der anderen Antwort ist allerdings effizienter!

0

Du kannst in einer for drüber Iterrieren und du vergleichst immer nur zwei Elemente, eine Variable a und das Aktuelle Element im Array.

Zu beginn initialisierst du a mit dem ersten Arraywert. Die Schleife startet dann beim Index 1.

Jetzt vergleichst du einfach a mit deinem aktuellen Element im Array, wenn das Element im Array kleiner als a ist dann schreibst du das Element im Array in a rein.

Dadurch vergleichst du immer mit dem kleinsten bisher gefundenen Wert und wenn du alle Werte durch bist ist das automatisch der kleinste wert

int a = Array[0]

for(i = 1; i <= arraylength; i++)

{

if(Array[i] < a)

a = Array[i];

}

return a;

Antwort bewerten Vielen Dank für Deine Bewertung

Das musst du mit einer Schleife machen. Bei jedem Element überprüfst du, ob es kleiner ist als das davor. Wenn das der fall ist, dann überschreibst du dir Hilfsvariable für den kleinsten Wert

Antwort bewerten Vielen Dank für Deine Bewertung

da hast du schon einige antworten bekommen. bleibt aber eine frage übrig:

warum studierst du informatik?

Antwort bewerten Vielen Dank für Deine Bewertung