When I try to compile the following code in borland it tells me that there is incorrect syntax with the for () loop and that the statement is missing. I don't understand why the syntax is wrong, i have put an initializing statement, then a condition, then the increment increaser... Can anyone suggest what I may have done wrong... Any help greatly appreciated.

note: the program is designed to calculate the time of filling of a tank with varying radi with height by means of trapezoidal integration.

Code:

#include<stdio.h>
#include<math.h>
main()
{
/*declaring variables*/
float i,h,r,p;
float hlevel,llevel;
float D1, D2, D3;
float Qo,Qi,dt,w;
float time;
/*declaring functions*/
/*float time( float r);*/
/*defining variables*/
#define n 500;
#define pi 3.1415926535897932384626433832795;
#define g 9.81;
D1= 6.0;
D2= 3.7;
D3= 2.7;
hlevel= 0.5;
llevel= 5.0;
w=(hlevel-llevel)/n;
/*getting user input for density*/
printf("Welcome to the surge tank simulator program\n");
printf("Please enter the liquid density (kg/m^3):\n");
printf("p=");
scanf("%f", &p);
/*trapezoidal integration using for loop*/
for(i=1;i<n;i++)
{
h= 0.5+(i*w);
Qo= 0.000004*(sqrt((p*g*h)));
Qi= 300;
if(h <= D3 && h >= 0.5)
{
r= 1.5;
}
if(h <= D2 && > D3)
{
r= (0.5)*(5.7-h);
}
if(h <= 5.0 && > D2)
{
r= (3.5/3.22)*(h - 2.78);
}
dt= ((pi*(r*r))/(Qi-Qo))*w ;
time= time + dt;
} /*end for... i.e. i does not equal less than or equal to n*/
printf( "The high level alarm sounds after %f, hours\n", time);
} /*end main*/