0

2 次元配列の上対角要素の値をチェックする基本的なループを実行しています。

//Check upper diagonal
for (i = 0; i < n; i++){
    for (j = i+1; j<(n-1); j++){
        printf("n: %d i: %d j: %d\n",n, i, j);
        if (myA[i][j] > pow(10,-13)) return 0;
    }
}

ただし、このコードは、必要な要素を正確にチェックしません。内側のループに配置した print ステートメントにより、次の出力が得られます。

n: 4 i: 0 j: 1
n: 4 i: 0 j: 1
n: 4 i: 0 j: 2
n: 4 i: 1 j: 2

特に難しいのは、1 行目と 2 行目の間です。私が期待するように、中間ループの最初の反復後に j がインクリメントされていないようです。

出力の 2 行目が表示されないのはなぜj: 2ですか?

4

1 に答える 1