C程序运行问题

来源:百度知道 编辑:UC知道 时间:2024/09/18 06:39:14
此程序当输入50或150时能正常出结果,输入100就不能出结果,望各位看看是什么原因??

main()
{
int i;float l,g11=0.07831,g12=0.15383,f,g2=0.07831,g,A,B,t1=-40,t3=-5,t,c1=285.77,c,c0,x,x0,x1,dx;
scanf("%f",&l);
if(l<=206.92) g=g11,c=c1,t=t1;
else g=g12,c=c1,t=t3;
for(i=40;i>=-40;i-=10)
{
A=c-(185000*g*g*l*l)/(24*c*c)-185000*0.0000115*(i-t);
B=185000*g2*g2*l*l/24;
printf("A=%f,B=%f",A,B);
x0=1.0;
do{
dx=(x0*x0*x0-A*x0*x0-B)/(3*x0*x0-2*A*x0);
x1=x0;
x0=x0-dx;
}
while(x0!=x1);
printf(" c0=%f\n",x0);
f=(g2*100*100)/(8*x0);
printf("f=%f",f);
printf("\n");
}
}

程序没有看完,不过你的if(l<=206.92) g=g11,c=c1,t=t1;
else g=g12,c=c1,t=t3;这两句我感觉有问题,要习惯用{}
还有就是g=g11,c=c1,t=t1;应该是3个语句吧,中间应该用“;”隔开而不是“,”号。
if(l<=206.92)
{
g=g11;
c=c1;
t=t1;
}
else
{
g=g12;
c=c1;
t=t3;
}