Hi, I tried to build a simple program that generates some math questions. This is one of my first's program in C, so I dont know if its ok, organized, I just know that I got an error:

I can compile the program perfectly on Dev-C++ and Borland, but when the program starts to generate the math-questions he didnt generate an rand number, he generate a giant number...

Someone knows what is the problem here?
And if you guys got some tip how to improve this code, please tell me, this is just my second day on C.

Thanks.

The code:
Code:
/*
  Name: Math-That, math game
  Author: Isaac Elbaz
  Description: Math-That, is a game of questions about math and more
  Date: 17/11/02 20:00
  Copyright: Make free use of the code, change it :)
*/

#include <stdio.h>  //Input and outputs functions
#include <stdlib.h> //Use system(), rand(), srand() and so on..
#include <conio.h>  //clrscr(), gotoxy() and more..
#include <time.h>   //needed to use "time" function and more.

//Constants declaration, some configurations.
#define POINTS_PER_QUESTION 10 //Points per correct question
#define LOW 50 //Low level
#define HIGH 100 //Hight Level

//Functions prototypes
int rnd(const int max); //Function the generates random numbers.
void msleep(const int SECONDS); //Generates some delay.
void print_points(const int POINTS); //Print the points of the player
void print_menu(void); //Print the menu
void start_engine(void); //Starts the engine
void blink(int mode); //Blink some text in the window
void print_end(void); //Print the end of the program

//Variable declaration
int level, answer, points, rNum1, rNum2, max_questions;
int curr_question, corr_answer; //Current question, correct
//Level, Answer, total points, random number 1, random number 2, max questions


int main(void) //Starts the program
{
    srand(time(NULL) + getpid());
    //With this, we can make "real" random numbers, Just INITIALIZE ONCE!
    
    print_menu(); //Print the menu option, and configure some needed things.
START:            //This will "mark" the start of our game
    start_engine(); //This starts our game-engine.
    
    return (0); //The end of our simple game.
    
}

int rnd(const int max)
{
    return((rand()%max)); //Use the function rand to generate a random number
                          //And then return-it (the random number)
}

void msleep(const int SECONDS)
{
    time_t delay;
    delay = time(NULL) + SECONDS;
    while(time(NULL) < delay) //Generates the delay
         ;
}

void print_points(const int POINTS)
{
    gotoxy(55,1); //Move the cursor to the top-left of the console
    printf("Score: %d\n",POINTS); //Write the score of the player
}

void print_menu(void)
{
    
    printf("Hello, welcome to Math-That, a simple math game made in C\n");
    printf("Now I need to ask you some questions...\n\n");
    
    //Receive the max questions of the game
    printf("How Many questions at all game? (I.E: 10)\n");
    scanf("%d",&max_questions);
    
    //The level of the questions
    printf("What level of questions? (1-2)\n");
    scanf("%d",&level);
    
    //We got all the info... 
    msleep(1); //Delay one second before exiting, giving time to the user 
    //read the message
    printf("\nO.K, you're ready to play, good luck!\n");
    
}
   
void start_engine(void)
{                
 PERGUNTA:
      //Check the level of the game, if 1
    //generate more simple questions, else if 2
    //generates more complexes questions
    
    if(level == 1) {
        rNum1 = rnd(LOW);
        rNum2 = rnd(LOW);
    }
    
    else {
        rNum1 = rnd(HIGH);
        rNum2 = rnd(HIGH);
    }
    
    corr_answer = rNum1 * rNum2; //The correct answer
    //Start generating the questions
    do
    {
        clrscr(); //Clear the screen
        print_points(points); //Print the score
        printf("\n%d X %d = "); //Print the question
        scanf("%d",&answer);
        
        if(answer == corr_answer) { //If correct...
            blink(1); //Blink correct...
            points += POINTS_PER_QUESTION;  //Make the score
            ++curr_question; //Move to the next question
            
        }
        
        else { //Incorrect
            blink(2); //Blink incorrect
            //points -= POINTS_PER_QUESTION; //Unremark if you want that an
            //Incorrect answer down points from the score
            printf("\nThe correct answer is: %d\n",answer);
            ++curr_question; //Move to the next question
            
        }
        
        if(curr_question == 10) {
            blink(3); //Blink end-of-game
            print_end(); //Print the end of the program
        }
        
        goto PERGUNTA;
    } while(answer != corr_answer);
}

void blink(int mode)
{
    int i; //Just for the index use...
    
    if(mode == 1) { //Print correct
      for(i = 0; i <= 3; i++) {
        clrscr(); //Clear the monitor
        textcolor(RED); //Change the font color to red
        gotoxy(35,10); //Go to this coordenate
        printf("Correct!"); //print correct
        msleep(1); //delay of 1 second
        textcolor(WHITE); //change font color to white
        gotoxy(35,10); //go to this coordenate
        printf("Correct!"); //Print correct (now in white)
        msleep(1); //delay 1 second
      }
    }
      
      if(mode == 2) { //Same as one but now prints Incorrect
        for(i = 0; i <= 3; i++) {
        clrscr();
        textcolor(RED);
        gotoxy(35,10);
        printf("Incorrect!");
        msleep(1);
        textcolor(WHITE);
        gotoxy(35,10);
        printf("Incorrect!");
        msleep(1);
        
      }
    }
    
    if(mode == 3) { //Same as te others, now print END OF THE GAME!!!
      for(i = 0; i <= 3; i++) {
        clrscr();
        textcolor(RED);
        gotoxy(35,10);
        printf("END OF THE GAME!!!");
        msleep(1);
        textcolor(WHITE);
        gotoxy(35,10);
        printf("END OF THE GAME!!!");
        msleep(1);
      }
    }
}

void print_end(void)
{
    clrscr(); //Clear the screen..
    gotoxy(35,10);
    printf("Thanks for using this program.. hope you like it\n");
    printf("Fully programmed in C with Dev-C++\n");
    printf("Thanks for the guys from Cprogramming.com for the fast and perfect\
    answers.. Thanks!\n");
    msleep(5); //Delay 5 seconds
    exit(1);   //Exit...
}