0

このプログラム(C)は、私が期待するものを出力しません:

int main()
{
    int i, j ;
    for ( i = 1 ; i <= 2 ; i++ )
    {
        for ( j = 1 ; j <= 2 ; j++ )
        {
            if ( i == j )
                continue ;
            printf ( "\n%d %d\n", i, j ) ;
        }
    }
}

私はそれがすべきだと思います

1 2
1 3
2 1
2 3

しかし、プログラムは出力します

1 2
2 1

どうしてこれなの?

4

2 に答える 2

4

ループのインデックスが3番に到達することはありません。

于 2012-08-20T15:35:04.260 に答える
1

の値iとは次のjシーケンスを通過します。

i j
---
1 1
1 2
2 1
2 2

i++j++増分は、ループ本体の各反復後に発生することに注意してください。

printfあなたが呼ばれる唯一のケースは、ijが異なるところです。つまり、次のようになります。

1 2
2 1
于 2012-08-20T15:38:34.847 に答える