> scanf("%c", &user_input);
Maybe you want
scanf(" %c", &user_input);
The leading space means you skip newlines etc and read the next visible printable character.
It's only 'ignoring' because it doesn't contain what you expect.
Some simple debug like
would have revealed all in an instant.Code:scanf("%c", &user_input); printf("Got char=%d\n", user_input);