Before I start, I do C++ programming, and haven't spent much time looking at C... after some quick googling, there are some very similar functions in C that will make your life easy.
Here is the source, though it might require some work, for a C menu... you just have to write the functions that it calls.
Now, to explain why. I find switch() and the case (choice) system to be easier than if/else, and more reliable. So, the way I do my menus, at least simple ones like this, is convert the choices to ASCII input, then switch them. The variable will get the ascii value of the character input, then plug it into the variable menu, then run the switch. You MIGHT have to remove the '0' from in front of them, my compiler complains about them but others demand the three digit ASCII value. I'm not sure what yours wants, so I included all three digits. If this is the case, when you make a selection, you will be told to enter a valid input, and the loop will run again, no matter what you enter. This menu will repeat itself, even after the function is ran (i believe) until the user chooses to quit. this is done with the boolean variable DONE.
bool DONE = FALSE;
while (DONE == FALSE)
/*menu text goes here... your options and such, and user input. Make sure that it is INSIDE the while loop...
this way, every time the menu is called, be it for an incorrect choice, or the previous operation completed, it will show the menu again. */
menu = int(choice); // this will convert the char to an int, which I will explain in a moment
DONE = TRUE;
DONE = TRUE;
default: printf("Please make a valid selection! \n";)
DONE = false; //setting Done to FALSE here is so that the loop will run again, bringing the menu back up.
If you really want to clean it up, you need indentations, and probably some searching on google for the functions used. I would also recommend double checking all of my syntax, as I am not used to C, but am used to C++.