将下列语言及公式用C语言如何表达,求个编程高手帮帮忙,万分感谢

Rt=Rf (摩擦阻力)+Rw(兴波阻力)
雷诺数Re<2000为层流状态,雷诺数>4000为紊流状态,雷诺数2000<Re<4000则为过渡流状态。
对于光滑平板层流摩擦阻力系数:Cf=Rf /( ρv2S)=1.328Re1/2;
对于光滑平板紊流摩擦阻力系数:Cf=0.075/(lgRe-2)2;
对于光滑平板过渡流摩擦阻力系数:Cf=0.045/(lgRe)2.58-1700/Re。
摩擦阻力计算公式为:Rf=(Cf+ΔCf)* ρ*V^2*S。式中S为船体的湿面积,且S与船长L有关:S=L^2。ΔCf为粗糙度补贴系数,通常ΔCf=0.0004。雷诺数Re=UL/υ,U为流体流动的速度,L为船舶的尺度,υ为流体的运动粘性系数,在此 我取温度为十度,故水流运动粘性系数υ=1.31x106。
(摩擦阻力)+Rw(兴波阻力)
L和U手动输入

第1个回答  2013-01-18
看不清你的公式(指数或什么),自己修改。
开平方用 sqrt(), 以10为底的对数用log10,指数运算用pow(底,指数)。
常数值要搞搞清,例如粘性系数。兴波阻力计算自己添加。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

main()
{
double Rt,Rf,Rw,Re;
double Cf;
double L,U,S,dCf=0.0004,niu,t;
double lo=1.0;

printf("input L U\n");
scanf("%lf %lf",&L,&U);
S=L*L;
niu=1.308E-03; // 1.31 * 10 ^ 6 ?
Re = L * U / niu;

if (Re<2000.0){
// Cf=Rf /( ρv2S)=1.328Re1/2;
Cf = 1.328 * sqrt(Re);
} else if (Re>4000.0){
// Cf=0.075/(lgRe-2)2;
t = (log10(Re)-2);
t = t * t;
Cf=0.075 / t;
} else {
// Cf=0.045/(lgRe)2.58-1700/Re;
Cf=0.045 / pow( log10(Re),2.58) -(1700.0/Re);
}
// Rf=(Cf+ΔCf)* ρ*V^2*S
Rf = (Cf + dCf) * lo * U*U*S;
Rw=0.0;
Rt = Rf + Rw;
printf("Re=%lf Rt=%lf\n",Re,Rt);
return 0;
}追问

能给个联系方式吗,还有些问题请教。

追答

可以发消息联系。

相似回答