> why the line age = getInt(IsValidAge); executes before printf
Standard out is buffered. The printf happened, in the sense that the resulting string was stored in the standard out buffer maintained by the library. But what didn't happen was that buffer being sent to the outside world so you could see it.
If you want to guarantee you'll see it, then you need to do this
printf("Enter Your Age: ");
fflush( stdout );
Note that this is correct use of fflush().
Your use of fflush(stdin) (which is NOT an output stream) is broken.
In either language, use fgets() for C or cin.getline() for C++, I would suggest you read a WHOLE line into memory, then parse that line from memory. In your most immediate case, this would mean using sscanf().
Oh, and as already mentioned, decide whether you want to be a C
OR C++ programmer. Crazy mixes of c/c++ is not an option.