Multiple Bouncing Balls Program in C

Multiple Bouncing Balls Program 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);
        num=(int *) malloc(total*sizeof(int));
           for(i=0; i<total; i++)
               fscanf(input, "%d", &num[i]);
           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");
               for(i=0; i<=n; i++)
                   finish = clock();
                   step = (finish-previous)*1.0/CLOCKS_PER_SEC;
                   if (step >= 0.03)
                    previous = finish;
                    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;
     while (!kbhit());
        printf("Could not allocate memory\n\n");
    printf("Could not open file\n\n");
return 0;


since you’re suspicious of the graphics.h library - i would start by isolating that and just to see if it is working or not.


Yes, that is what I did and I believe that there is a problem in that. However, I cannot find what and where it is.


so it didnt work when you isolated it? perhaps an update - could check the syntax or methods you’re using and make sure theyre correct - i dont know much about C# so im just giving my thoughts here


No, it didn’t. I don’t know what it might be. I really appreciate your help. Thank you.


a quick check on msdn
shows FillEllipse() with caps - perhaps something like that - not sure if caps matter there


Nope. Same problem. I think that it is probably something which has to do with the functions of the program and not the syntax. I say that because I use CodeBlocks and it doesn’t show me any errors at the debugging. It just starts the program and then it crushes.