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: 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; do { j=0; 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]); j=j+7; } } } while (!kbhit()); closegraph(); } else { printf("Could not allocate memory\n\n"); } } else { printf("Could not open file\n\n"); } system("pause"); return 0; }