sun7854 发表于 2017-3-12 17:46:11

求解下面的编程 求助红色区域 是



d1=0.001,d2=1.5;
while(1)
{
d3=(d1+d2)/2.0;
Re=1.534*Q*del*1000/(d3*u);
R1=0.001;
R2=1.0;
while(1)
{
R3=(R1+R2)/2.0;if(fr(k,d3,Re,R3)>1e-6)R1=R3; if(fr(k,d3,Re,R3)<-1e-6)R2=R3;if(fabs(fr(k,d3,Re,R3))<1e-6)break;
}
R=R3; if(fd(R,z,d3)>1e-6)d1=d3;
if(fd(R,z,d3)<-1e-6) d2=d3;if(fabs(d3-d1)<1e-6&&fabs(d3-d2)<1e-6)break;
}
d=d3; printf("摩阻系数为R=%e,管径为d=%em\n\n\n",R,d); printf("雷诺数为Re=%e\n\n\n",Re);
}

785430264

sun7854 发表于 2017-3-12 17:47:21

截取了自己不懂得地方,发布出来全部的编程点我QQ   谢谢前辈大神们

hqbtc 发表于 2017-3-13 17:16:29

两个while循环是死循环
因为条件为1永远为真
if语句的break条件满足时,跳出循环
具体结果自己分析

sun7854 发表于 2017-3-13 23:28:42

hqbtc 发表于 2017-3-13 17:16
两个while循环是死循环
因为条件为1永远为真
if语句的break条件满足时,跳出循环


程序没问题,调用子函数算的fr和fd。就是上面的管径d1和d2的赋值0.001和1.5,这是输气管道管径的编程。发不了全部的只发了我不懂的这个
页: [1]
查看完整版本: 求解下面的编程 求助红色区域 是