@Nullw0rm, thanks for the feedback! I didn't realise the '/0' was saved and used as the next input.
I am however confused as to why it works with the second code snippet?
The "\0" is not the problem in this case, you can visualize the problem like this.
When you are asking for it to enter a number first, you press 23 then hit enter. The enter button creates a newline character, or "\n", and this is accepted as a char. This means after you press enter, the newline is automatically plugged into your second scanf asking for a "char" and it is skipped completely.
The way of which you can resolve this is to "eat" the newline character in reference to my last solution of using scanf() parameter %*c or using fgets to capture the number and sscanf to store the integer into a variable ignoring the newline char. In C++ you may see a reference to "cin.ignore()" to replicate this behaviour.