You read in your option with
scanf("%c", &opt);
On the first call, scanf reads in an end-of-line character (\n), which is not a valid option.
The simplest solution would be to ignore end-of-line characters
case '\n':
break;
The do - while loop should actually terminate after 'c', which it does not.
Furthermore it is noticeable that you do not remember the calculated random values and therefore neither the sum nor the mean value later.
This code is very inefficient and the if-query is superfluous:
for (int i = 001; i <= amount; i++) {
num = (rand() % (max - min + 1)) + min;
if (i <= 9) { printf("|00");
printf("%d | %d|\n", i, num);
}
else { printf("|0");
printf("%d | %d|\n", i, num);
}
}
Here a simple
printf("%03d | %3d|\n", i, num);
would produce a much better and simpler output.