Other reasons are: it is -- well, not impossible, but very difficult -- for your do-while loop to loop more than once. (You would have to type the 'y' for continuing at the end of your Other miscellaneous input, since otherwise the \n character will be in the way.) If you want to make sure the input character is not whitespace (space bar, enter key, etc.) then you need to use " %c" in your scanf call.

Other other reasons: You have to be on a OS where "pause" is a valid command to the operating system, which many people are not.

> float _allowance, _food, _trans, _eqp, _misc;
You should also know that identifiers beginning with underscores are reserved.

To be pedantic, it's names that begin with an underscore + An uppercase letter. Or names that begins with two or more underscore identifiers. So it's actually safe in scopes inside functions (not global scope).

Also, stdio.h should be cstdio. But then again, is it even used?

Furthermore, remember that main shall not recursively call itself. Use a loop.

Originally Posted by Adak

io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.

Originally Posted by Salem

You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.