当前位置: 代码迷 >> C语言 >> 急 !! 这个代码有什么语法错误? 快啊
  详细解决方案

急 !! 这个代码有什么语法错误? 快啊

热度:455   发布时间:2008-06-06 23:47:05.0
急 !! 这个代码有什么语法错误? 快啊
#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(按任意键继续");
}
搜索更多相关的解决方案: 语法  代码  

----------------解决方案--------------------------------------------------------
scanf("%f",&1);//????
d=(y[i]-l)/(i-i2);//未声明d
c=(h-y[i])/(i1-i);//同上
c=(h-y[i]/(i-i1);//少括号
  printf(按任意键继续");//引号不全
类似错误,自己找吧。。。
----------------解决方案--------------------------------------------------------
回复 2# blueboy82006 的帖子
谢谢
----------------解决方案--------------------------------------------------------