for(k=0;k<=n-2;k++)for(i=k+1;i<=n-1;i++) { if(!B[k][k]) { for(i1=0;i<=n-1;i++) { w[i1]=B[i1][k]; B[i1][k]=B[i1][k+1]; B[i1][k+1]=w[i1]; } cp++; } Print(__FUNCTION__+": i=",i); c=1.0*B[i][k]/B[k][k]; for(j=0;j<=n-1;j++) B[i][j]-=B[k][j]*c; }
2019.03.31 00:07:28.689 (GBPUSD,H1) array out of range in 'SSA.mqh' (147,14)
for(i1=0;i1<=n-1;i1++) { w[i1]=B[i1][k]; B[i1][k]=B[i1][k+1]; B[i1][k+1]=w[i1]; }
for()のどこでもi1でなければならない?
leonerd:
for()のどこもかしこもi1に違いない?
馬鹿はお前だ。
Алексей Тарабанов:
バカはお前だ
ロシア保健省ホットライン:8 800 550 99 03
次から次へとエラーが出る。配列の オーバーラン、0による除算。
しかも、このライブラリがどういうものなのかまったく理解していないので、どう修正すればいいのかわからない......。
例えばこのループ:
for(k=0;k<=n-2;k++)for(i=k+1;i<=n-1;i++) { if(!B[k][k]) { for(i1=0;i<=n-1;i++) { w[i1]=B[i1][k]; B[i1][k]=B[i1][k+1]; B[i1][k+1]=w[i1]; } cp++; } c=1.0*B[i][k]/B[k][k]; for(j=0;j<=n-1;j++) B[i][j]-=B[k][j]*c; }B[k][k]がゼロに等しいので、内部ループのforに達すると、iはすでに外部ループの限界を超えている、つまりiがn-1より大きくなる。そして、B[i]にアクセスすると、配列の限界を超えたところで終了する。
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
FullSSA:
関数のSSA.mqh単数変換ライブラリに基づいて描かれた再描画オシレータ
作者: Nikolay Kositsin