标题:循环不明白了?请高手指点
只看楼主
anqi0594
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-18
 问题点数:0 回复次数:5 
循环不明白了?请高手指点
gg初值为1,hu,hz,g,QC,TC,t,bg都为定值
if(hu<hz)
{  
cd1=2*gg;        
cd2=4*gg                    
if(hz<(0.81*hu*pow((hu/gg),0.72)))
{gq=cd1*bg*gg*sqrt(2*g*hz);
cd=cd1;}
else
{gq=cd2*bg*gg*sqrt(2*g*hz);
 cd=cd2;}
dd=gq-QC/TC*t;   
if(dd<-0.1)  gg=gg+0.001;
else if(dd>0.1) gg=gg-0.001;
}
else printf("disp wrong operation\n");


这部分程序我想实现的是,if(hu<hz)为真,经过一系列判定计算gq计算dd,然后根据dd在的范围再判断gg是应该加还是减,然后再返回if(hu<hz)语句反复计算gg 直到用gg计算的gq带入到dd中得到的dd值在-0.1<dd<0.1为止。
我的程序应该怎么改改呢?请高手指点!
搜索更多相关主题的帖子: operation wrong 
2008-11-23 13:27
zqy110007
Rank: 3Rank: 3
来 自:外太空
等 级:论坛游民
威 望:6
帖 子:1493
专家分:82
注 册:2008-11-19
得分:0 
麻烦程序完整一点,你直接把整个程序发上来..看一半不爽.又不能执行.

每个人都是蛤蟆,只是井的大小不同罢了.
沙石下的泉水,挖得越深,泉水越清.
2008-11-23 14:00
anqi0594
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-18
得分:0 
回复 第2楼 zqy110007 的帖子
由于大程序实在太麻烦,我怕看不清楚,所以只发这一部分,您方便帮我看下么?
2008-11-23 15:44
天才小明
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-4-14
得分:0 
太乱了 完整发上来看下
2008-11-23 16:22
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
得分:0 
套一层do..while循环,
中间的公式部分我没看,你自己确认是不是对的

do
{
cd1=2*gg;        
cd2=4*gg                    
if(hz<(0.81*hu*pow((hu/gg),0.72)))
{gq=cd1*bg*gg*sqrt(2*g*hz);
cd=cd1;}
else
{gq=cd2*bg*gg*sqrt(2*g*hz);
cd=cd2;}
dd=gq-QC/TC*t;   
if(dd<-0.1)  gg=gg+0.001;
else if(dd>0.1) gg=gg-0.001;
}while(dd > 0.1 || dd < -0.1)

[[it] 本帖最后由 永夜的极光 于 2008-11-23 17:22 编辑 [/it]]

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-11-23 17:19
anqi0594
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-11-18
得分:0 
回复 第5楼 永夜的极光 的帖子
感谢版主,我试一下!
2008-11-23 20:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-245841-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.139675 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved