新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1921

 
而且,事实上,通过只将ArrayI中的非匹配元素复制到ArrayJ中,可以将周期1和2结合起来。
 
x572intraday ArrayI的元素 具有相同索引和值的元素。

关键字符串被高亮显示。结果。

预期的。

ArrayJ是动态的,似乎有什么问题......。但我也不需要一个静态的。

打破了我的想法。怎么了?或者说,这相当于那首老歌。

https://www.mql5.com/ru/forum/1111/page3141#comment_27152680

и

https://www.mql5.com/ru/forum/1111/page3142#comment_27371998

关于命名的常数?

你有一个额外的循环。

这里是正确的变体。

void OnStart()
{
   int CommonArray[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13, 13, 13, 13, 13, 13, 13};
   int ArrayI[20]=   {0, 0, 0, 0, 0, 0, 0, 8, 9, 10,  0, 12, 13, 13, 13, 13,  0,  0, 13,  0};
   int ArrayJ[];

   for(int j=0; j<ArraySize(ArrayI); j++)
   {
      ArrayResize(ArrayJ,j+1);
      ArrayJ[j]=CommonArray[j];
   }

   ArrayPrint(ArrayI);
   ArrayPrint(ArrayJ);

        for( int i = ArraySize( ArrayI )-1; i >= 0; i-- ){
                if( ArrayI[i] > 0 && ArrayI[i] == ArrayJ[i] ){
                        ArrayRemove( ArrayJ, i, 1 );
                }
        }

   ArrayPrint( ArrayJ );
//---
}
 
EVGENII SHELIPOV #:

不要撕毁自己,亚历山大。

为什么是亚历山大?我是安德烈。

"不要撕裂自己" - 澄清。

 
Koldun Zloy #:

你有一个额外的周期。

这里有正确的选择。

关于额外的循环...在这里可能不合适,但在一个大的代码中是必要的,所以它被移到这里。我 目前没有资源来检查该算法的正确性,但从形式上看,它是按计划进行的。

JRandomTrader,结果令人惊讶:全部为零。我稍后将仔细检查。

谢谢大家。

JRandomTrader
JRandomTrader
  • 2018.10.28
  • www.mql5.com
Профиль трейдера
 
int CommonArray[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 13, 13, 13, 13, 13, 13, 13};
int ArrayI[20]=   {0, 0, 0, 0, 0, 0, 0, 8, 9, 10,  0, 12, 13, 13, 13, 13,  0,  0, 13,  0};
int ArrayJ[];

int CommonOffset=0; // или сколько надо

ArrayResize(ArrayJ,ArraySize(ArrayI));
int k=0;
for(int j=0; j<ArraySize(ArrayI); j++)
   if(ArrayI[j]!=CommonArray[j+CommonOffset])
      ArrayJ[k++]=CommonArray[j+CommonOffset];
ArrayResize(ArrayJ,k);

它是这样的。

而这些零是我的错,它们应该在那里。

int k=0; // объявляем до цикла - чтобы использовать после
for(int i=0; i<ArraySize(ArrayI); i++) // после предыдущего кода (1) размеры ArrayI и ArrayJ равны
  if(ArrayI[i]!=ArrayJ[i])
    {
     -ArrayJ[k++]=ArrayI[i];
     +ArrayJ[k++]=ArrayJ[i];
    }
ArrayResize(ArrayJ,k);


 
Tretyakov Rostyslav #:

唏嘘

 
Tretyakov Rostyslav #:

亲爱的!

你使用的是错误的信息。

 
Vitaly Muzichenko #:

亲爱的!

你使用的是错误的信息。

你想要哪一个?
 
Tretyakov Rostyslav #:
你想要哪一个?

另一个

 
Tretyakov Rostyslav #:
是哪一个呢?

你是一个程序员,不是出租车司机,你需要寻找原因,而不是结果,然后一切都会水到渠成。

原因: