If input fails, scanf will return EOF. You should look in a reference for things like this. When that happens, you'll probably need to clear the input stream. I'm not well familiar with c libraries, so I can only suggest while( getchar() != '\n' );.
By the way, the condition on line 17 is wrong. There is no number which wouldn't satisfy it. There is no need for a condition there at all. "else" makes sure that no number in the wrong range gets to that point.
i have to do a message that do "printf("\tPlease enter value between 1 - 999999.");" whenever either 'a' to 'z' or 'A' to 'Z' is input, then repeat to ask for input again...