27

いくつかの複雑な C パズルがあるサイトを見つけました。現在、私はこれを扱っています:

以下は、マイナス記号を 20 回出力することを意図した C コードの一部です。しかし、あなたはそれに気づくことができます、それはうまくいきません。

#include <stdio.h>
int main()
{
    int i;
    int n = 20;
    for( i = 0; i < n; i-- )
        printf("-");
    return 0;
}

上記のコードを修正するのは簡単です。この問題を興味深いものにするには、上記のコードを 1 文字だけ変更して修正する必要があります。既知の解決策は 3 つあります。この 3 つすべてを取得できるかどうかを確認します。

解決方法がわかりません。--に変更することで修正できることはわかっていますが、機能させるため++にどの文字を変更すればよいかわかりません。

4

8 に答える 8

34

ここに1つの解決策があります:

for( i = 0; -i < n; i-- )
        printf("-");

ここに 2 番目のものがあります。私を助けてくれた Mark に感謝します!

for( i = 0; i + n; i-- )
    printf("-");

マークも 3 番目のものを持っていました。

for( i = 0; i < n; n-- )
    printf("-");
于 2010-03-23T20:33:40.540 に答える
-1

ここに別のものがあります:

#include <stdio.h>

int main()
{
    int i;
    int n = -20; //make n negative
    for( i = 0; i < n; i-- ) 
        printf("-");
    return 0;
}
于 2011-01-08T00:11:35.130 に答える