急 !! 这个代码有什么语法错误? 快啊
#include<stdio.h>void lmax0();
void lmax1();
void lmax2();
void lprin();
int i1,i2,n;
float y[11],g,l,k,h,ymin,ymax;
main()
{
int i;
float c,d=0,y1,p,q;
printf("%s\n","直线运动误差的计算机处理");
printf("%s\n","请按下面的提示逐项回答");
printf("要测的点数n:");
scanf("%d",&n);
printf("激光准直仪分度值c:");
scanf("%f",&c);
printf("被测件长度L:");
scanf("%f",&1);
g=c*l;
y[0]=0;
printf("请依次输入各点测点读数\n");
for(i=1;i<=n;i++)
{
printf("第%d点读数y(%d)=",i,i);
scanf("%f",&y[i]);
}
printf("按任意键继续\n");
getchar();
for(i=1;i<=n;i++)
{
d=d+y[i];
}
y1=d/n;
for(i=1;i<=n;i++)
{
y[i]=y[i]-y1;
}
for(i=1;i<=n;i++)
y[i]=y[i]+y[i-1];
h=y[0];l=h;
for(i=1;i<=n;i++)
{
if(y[i]>=h)
{h=y[i];i1=i;}
else if(y[i]<=1)
{l=y[i];i2=i;}
}
p=h;q=l;
lmax0();
if(q>=0)
{ymin=-p/3.0;ymax=1.5*p;}
else if
(p<=0){ymin=105*q;ymax=-q/3.0;}
else
{ymin=1.5*q;ymax=1.5*p;}
}
float a,b;
int x1,x2;
void lmax0()
{
a=h-1;b=a;
if(i1>i2)
lmax1();
else
lmax2();
if(a<b)
{if((x1<i2)&&(i2<i1))
lprin();
else if((x1>i2)&&(i2>i1))
lprin();
else
{i1=x1;h=y[i1];
lmax0();}
}
else
{if((x2>i1)&&(i1>i2))
lprin();
else if((x2<i1)&&(i1<i2))
lprin();
else
{i2=x2;l=y[i2];lmax0();}
}
void lmax1()
{ float c,d;int i;
for(i=0;i<=n;i++)
{if(i<i1)
{c=(h-y[i])/(i1-i);
if(c<=a)
{a=c;x1=i; }
}
if(i>i2)
{d=(y[i]-l)/(i-i2);
if(d<=b)
{b=d;x2=i;}
}
}
if(a>b)
k=b;
else
k=a;
}
void lmax2()
{ float c,d;
int i;
for(i=0;i<=n;i++)
{if(i>i1)
{c=(h-y[i]/(i-i1);
if(c<=a)
{a=c;x1=i;}
}
if(i<i2)
{d=(y[i]-1)/(i2-i);
if(d<=b){b=d;x2=i;}
}
}
if(a>b)
k=-b;
else
k=-a;
}
void lprin()
{ float f;
f=(int)((h-k*i1)-(l-k*i2))*g*10+0.5)/10.0/1000;
printf("直线运动误差f=%\n",f);
printf(按任意键继续");
}