Übung 2
Fehlerbehandlung, generisches Sortieren
Folien ⨳ Aufgabe
Codebeispiel aus der Tafelübung
Ein Programm, dass 10 Zufallszahlen sortiert:
#include <stdlib.h>
#include <errno.h>
#include <stdio.h>
static int cmp(const void *a, const void *b) {
const int *x = a;
const int *y = b;
if (*x < *y) {
return -1;
} else if (*x == *y) {
return 0;
} else {
return +1;
}
}
int main(void) {
int len = 10;
int *array = malloc(len * sizeof(int));
srand(4711);
for (int i = 0; i < len; i++) {
array[i] = rand() % 42;
fprintf(stderr, "%d\n", array[i]);
}
qsort(array, len, sizeof(int), cmp);
for (int i = 0; i < len; i++) {
int err = fprintf(stdout, "%d\n", array[i]);
if (err < 0) {
perror("fprintf");
fprintf(stderr, "errno: %d\n", errno);
exit(EXIT_FAILURE);
}
}
int err = fflush(stdout);
if (err != 0) {
perror("fflush");
exit(EXIT_FAILURE);
}
free(array);
exit(EXIT_SUCCESS);
}