Multiple Bouncing Balls in C#

I am trying to make a program in C# with multiple bouncing balls. I know it is a very known program and I have already searched the internet and seen different versions of it. However, because I am new in programming, I didn't manage to understand them and answer my questions. The problem is that I have created a code, but my program doesn't run properly. To be more exact, I think the part where it reads the data is fine, but then there is a problem in the code of the graphics.h library. I cannot understand where the problem is, as it is the first time I use this library. Please help me and be as lenient as possible.

Thank you in advamce.

Here is my code:

#include <stdio.h>
#include <graphics.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

int main()
{
    FILE *input;
    int n, *num, i, total, j;
    if((input=fopen("data.txt", "r"))!=NULL)
    {
        fscanf(input, "%d", &n);
        total=n*7;
        num=(int *) malloc(total*sizeof(int));
        if(num!=NULL)
        {
           for(i=0; i<total; i++)
           {
               fscanf(input, "%d", &num[i]);
           }
           fclose(input);
           clock_t start,finish, previous;
           double step;
           int gdriver = DETECT, gmode, errorcode;
           initgraph(&gdriver, &gmode, "");
           errorcode = graphresult();
           if (errorcode != grOk) 
           { 
               printf("Graphics error: %s\n", grapherrormsg(errorcode));
               system ("pause");
               exit(1);               
           }
           start=clock();
           previous=start;
           j=0;               
           do
           {
               for(i=0; i<=n; i++)
               {
                   finish = clock();
                   step = (finish-previous)*1.0/CLOCKS_PER_SEC;
                   if (step >= 0.03)
                   {
                    previous = finish;
                    setfillstyle(SOLID_FILL,BLACK);
                    setcolor(BLACK);
                    fillellipse(num[j],num[j+1],num[j+4],num[j+4]);
                    num[j]+= num[j+5]*step;
                    num[j+1]+= num[j+6]*step;
                    if (num[j]+num[j+4]>=getmaxx() || num[j]-num[j+4]<=0)
                    num[j+5] *= -1;
                    if (num[j+1]+num[j+4]>=getmaxy() || num[j+1]-num[j+4]<=0)
                    num[j+6] *= -1;
                    setfillstyle(SOLID_FILL,RED);
                    setcolor(RED);
                    fillellipse(num[j],num[j+1],num[j+4],num[j+4]);
                   }
               }
         }
     while (!kbhit());
     closegraph();
    }
   } 
  }
    else
    {
        printf("Could not allocate memory\n\n");
    }
}
else
{
    printf("Could not open file\n\n");
}
system("pause");
return 0;
}