> 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
Code:
scanf("%c", &user_input);
printf("Got char=%d\n", user_input);
would have revealed all in an instant.