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 #:

Dear!

間違った情報を使っている。

 
Vitaly Muzichenko #:

Dear!

間違った情報を使っている。

どれがいい?
 
Tretyakov Rostyslav #:
どれがいい?

もう一つの

 
Tretyakov Rostyslav #:
どっちなんだ?

あなたはプログラマーであって、タクシーの運転手ではないのだから、結果ではなく原因を探せば、すべてがうまくいくはずだ。