Drei eingegebene Zahlen sortieren
-
Zeile 30 ist UB,
in Zeile 18+19 wird const weggecastet -> Schrott
-
Die Compare-Funktion lässt sich noch dramatisch verkürzen:
int comp(const void *a, const void *b) { return *(int*)b - *(int*)a; }
-
Aber nur, wenn man noch Zusatzinformationen über die zu sortierenden Zahlen hat - ansonsten kann das potentiell underflowen.
-
SG1 schrieb:
Aber nur, wenn man noch Zusatzinformationen über die zu sortierenden Zahlen hat - ansonsten kann das potentiell underflowen.
Das kapiere ich nicht. Bei welchen Zahlen passiert ein Underflow?
-
z.B. b = INT_MIN, a = INT_MAX
-
SG1 schrieb:
z.B. b = INT_MIN, a = INT_MAX
Alles klar, wenn das Ergebnis der Subtraktion kleiner wird als INT_MIN.
-
supertux schrieb:
Wieso einfach wenn es schwieriger geht?
Weil einfach weniger schwer ist?
-
puhhh...
erstens ist der Thread ziemlich alt und zweitens steht eine nette Lösung genau dazu im (ziemlich guten) C-Einsteiger-Buch von Helmut Erlenkötter.
(Zur Erläuterung der Logik-Fähigkeiten von printf)
-
nachtfeuer schrieb:
puhhh...
erstens ist der Thread ziemlich alt und zweitens steht eine nette Lösung genau dazu im (ziemlich guten) C-Einsteiger-Buch von Helmut Erlenkötter.
(Zur Erläuterung der Logik-Fähigkeiten von printf)Könntest du bitte hier im Forum erläutern, was es mit der Logik-Fähigkeit von printf auf sich hat?
-
Lit schrieb:
nachtfeuer schrieb:
puhhh...
erstens ist der Thread ziemlich alt und zweitens steht eine nette Lösung genau dazu im (ziemlich guten) C-Einsteiger-Buch von Helmut Erlenkötter.
(Zur Erläuterung der Logik-Fähigkeiten von printf)Könntest du bitte hier im Forum erläutern, was es mit der Logik-Fähigkeit von printf auf sich hat?
Das wollte ich auch schon fragen.