全球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
  1. int s = duniform(1,7);2 m+ w% u# c- Y- j+ S3 Y
  2. Table L_way = Table("heavy_way");
    + U$ P" S! ~, ^7 i8 G5 I! F! T
  3. Table L_factway = Table("heavy_wayfact");9 T$ Q( |1 j; c4 t' D, j
  4. & M- v4 |& _, S: `$ I" Z
  5. int x = 0;. ]4 n0 |% D1 _# N4 B3 f1 }) ]
  6. int index =0;
    * p6 p, A( I/ B! p1 D+ n4 e7 Z
  7. double m = 0;
    ( D1 L- ], e4 w/ z3 U+ B
  8. for(int i=1;i<L_way.numRows;i++)+ m% O- _; u# G* ^  g! T# `/ n
  9. {3 E! y3 a; T* y4 S
  10.         double flowrate = L_way[i][s];( O' U4 ]9 H, B* O( u' d& _
  11.         double lfact = L_factway[i][s];  // 每次你这样都是为0,因为你没改变过
    9 U1 x6 K& c. \
  12.         if(flowrate!=0)   // 找到非0值$ b9 P8 O) S7 g. n- ^2 z5 E
  13.         {* t7 W; T' Q6 ~* e
  14.                 index++;
    & Y. j$ ^5 P! a7 m3 \
  15.                 if(index==1)   // 当找到第一个flowrate值不为02 O& D: ^) @! J& M" E: I& F' C
  16.                 {/ C. A& ]$ w& c& _3 v* ~
  17.                         x=i;' a; @& R! o9 ^
  18.                         m=lfact/flowrate;  // m还是0,因为lfact始终为00 g+ G( H5 H; p& L1 a  k" J' ]
  19.                 }+ c6 y3 i/ Z/ W' w3 O+ H4 [
  20.                 if(m>lfact/flowrate)   // 所以这个条件始终是没用的
    # D4 G% U9 r8 w+ d# Y: T+ y4 i, n
  21.                 {
    , |' D: L" R' F4 D* q# e
  22.                         x=i;
    . q+ m# ]" p  ^; |- |3 I
  23.                         m=lfact/flowrate;
    * ]' @7 k3 T7 U7 _
  24.                 }
    7 e3 t/ W5 A. h- R. M
  25.         }
    + Y: l( [' m: a% j+ Z
  26. }
复制代码

作者: Gao73    时间: 2019-5-13 09:35
沈瑞祥 发表于 2019-5-12 22:24
% b& d/ Y* T0 U你好,你这个代码其中问题很多。注意到你的heavy_wayfact中的数据初始时全部为零。
4 K' M7 W/ T7 L  u# d
谢谢版主咯,我再去修改一下程序试试
作者: zjj0605    时间: 2019-5-14 16:19





欢迎光临 全球FlexSim系统仿真中文论坛 (http://www.flexsimasia.com/) Powered by Discuz! X3.3