全球FlexSim系统仿真中文论坛
标题: 程序未执行问题 [打印本页]
作者: Gao73 时间: 2019-5-10 16:20
标题: 程序未执行问题
请问各位大佬,为什么这几行程序执行出来的结果是x=0啊,按理说结果应该是x=i,即x=1~5中的一个整数啊。谢谢各位大佬。; E) N" b+ h, q& b1 U
内容描述:这几行程序欲实现的功能是选择出“lfact/flowrate”值最小的那一行,每次执行时,s=item.s都是固定不变的,代表下面两个表格中的某一列。heavy_way中的数据一直不变,heavy_wayfact中的数据初始时全部为零,在执行完这几行程序,确定了具体的x之后,就在对应的第i行,s列加154。+ j4 o* \% I. F0 R: q3 _5 R. g
[attach]4906[/attach][attach]4907[/attach][attach]4908[/attach]% h8 c: K# h6 B- p/ o
6 m4 t' C2 r: H) _
M* @+ b1 H! B; k6 ?% S9 Z
作者: 沈瑞祥 时间: 2019-5-12 22:24
你好,你这个代码其中问题很多。注意到你的heavy_wayfact中的数据初始时全部为零。
7 l+ K- i4 E- n* I6 N- int s = duniform(1,7);2 m+ w% u# c- Y- j+ S3 Y
- Table L_way = Table("heavy_way");
+ U$ P" S! ~, ^7 i8 G5 I! F! T - Table L_factway = Table("heavy_wayfact");9 T$ Q( |1 j; c4 t' D, j
- & M- v4 |& _, S: `$ I" Z
- int x = 0;. ]4 n0 |% D1 _# N4 B3 f1 }) ]
- int index =0;
* p6 p, A( I/ B! p1 D+ n4 e7 Z - double m = 0;
( D1 L- ], e4 w/ z3 U+ B - for(int i=1;i<L_way.numRows;i++)+ m% O- _; u# G* ^ g! T# `/ n
- {3 E! y3 a; T* y4 S
- double flowrate = L_way[i][s];( O' U4 ]9 H, B* O( u' d& _
- double lfact = L_factway[i][s]; // 每次你这样都是为0,因为你没改变过
9 U1 x6 K& c. \ - if(flowrate!=0) // 找到非0值$ b9 P8 O) S7 g. n- ^2 z5 E
- {* t7 W; T' Q6 ~* e
- index++;
& Y. j$ ^5 P! a7 m3 \ - if(index==1) // 当找到第一个flowrate值不为02 O& D: ^) @! J& M" E: I& F' C
- {/ C. A& ]$ w& c& _3 v* ~
- x=i;' a; @& R! o9 ^
- m=lfact/flowrate; // m还是0,因为lfact始终为00 g+ G( H5 H; p& L1 a k" J' ]
- }+ c6 y3 i/ Z/ W' w3 O+ H4 [
- if(m>lfact/flowrate) // 所以这个条件始终是没用的
# D4 G% U9 r8 w+ d# Y: T+ y4 i, n - {
, |' D: L" R' F4 D* q# e - x=i;
. q+ m# ]" p ^; |- |3 I - m=lfact/flowrate;
* ]' @7 k3 T7 U7 _ - }
7 e3 t/ W5 A. h- R. M - }
+ Y: l( [' m: a% j+ Z - }
复制代码
作者: Gao73 时间: 2019-5-13 09:35
4 K' M7 W/ T7 L u# d
谢谢版主咯,我再去修改一下程序试试
作者: zjj0605 时间: 2019-5-14 16:19
欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) |
Powered by Discuz! X3.3 |