The problem is that your outer loop is checking for 0 to exit. So when you have an error condition you are exiting the loop. Is there a char you enter to exit the program? That's the value that you'll want to use in that loop. I think you'll want to do something like this...
while(c != SENTINAL){
if(c == 0){
PrintIt("error must be 1-4");
continue;
}
//other loop code
}
SENTINAL is the value the user enters to exit your program