| 
 
| 这段程序没有编错,可是算不出结果,请指点,屏幕上没有结果。<br />float f(float x)<br />{<br />    float y;<br />//    y=(((0.54525/1e7-1.2103722/1e10*273.16)*x + 1.4307/1e7*273.16 - 0.75/1e4)*x + 0.57/1e4*273.16)*x-0.7;<br />    y=(0.54525/1e7-1.2103722/1e10*273.16)*x*x*x + (1.4307/1e7*273.16 - 0.75/1e4)*x*x + (0.57/1e4*273.16)*x;//-0.7;<br />    return(y);<br />}<br />float xpoint(float x1,float x2)<br />{<br />    float y;<br />    y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));<br />    return(y);<br />}<br />float root(float x1,float x2)<br />{<br />//    int i;<br />    float x,y,y1;<br />    y1=f(x1);<br />    do<br />    {<br />        x=xpoint(x1,x2);<br />        y=f(x);<br />        if(y*y1>0)<br />        {<br />            y1=y;<br />            x1=x;<br />        }<br />        else<br />        {<br />            x2=x;<br />        }<br />    }<br />    while(fabs(y)>=0.0001);<br />    return(x);<br />}<br />main()<br />{<br />    float x1=0,x2=70,f1,f2,x;<br />    do<br />    {<br />        f1=f(x1);<br />        f2=f(x2);<br />    }<br />    while(f1*f2>=0);<br />    x=root(x1,x2);<br />    printf("A root of equation is%f",x);<br />    while(1);<br />} | 
 |