"Glitches out" is not very informative.
In restock(), the first printf has no argument corresponding to the "%.2f euros".
Also it looks like you're missing a continue in one of the switch cases.
And the format for the scanf shouldn't have the width part (the .2).
You don't need the variables to be static in event_handler.
Instead of using floats you should use integers holding the value in cents.
You can convert on input and output.
Code:
int input_money() {
int dollars = 0;
scanf("%d", &dollars);
int cents = 0;
scanf(".%d", ¢s);
return dollars * 100 + cents;
}
void output_money(int cents) {
printf("%d.%02d\n", cents / 100, cents % 100);
}
If you need to validate the input it's more complicated.