0

次のようなすべての可能な3桁の組み合わせを生成しようとしています:012, 013 ,014...

BUT:繰り返し文字(999 や 022 など)を無視したいし、数字を再利用したくない(123 が既にある場合は、321 を表示しない)ため、最後の値は789 にする必要があります。

ここに私のコード:

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

結果を次のように並べたい:

012, 013, 014, 015, 016, 017, 018, 019, 023, ..., 789

また、printf / putchar以外の関数を使用することは想定されていません。

4

2 に答える 2

5

これを解決する最も簡単な方法は次のようなものだと思います

for (i = 0; i <= 7; i++)
{
    for (j = i+1; j <= 8; j++)
    {
        for (k = j+1; k <= 9; k++)
        {
            printf("%d%d%d\n", i, j, k);
        }
    }
}
于 2013-07-18T10:08:46.443 に答える
0

こんにちは、あなたは EPITECH から来ましたか? これは「piscine」作業の 3 日目の 1 つです。この関数の難点は、printf も使用できないことです。「my_put_nbr」(%d printf)明日コーディングする必要がある関数であり、int 変数を出力できるのは誰でしょう。ここで疑問に思っている人のために、my_putchar func を使用して各数値の各文字を出力する方法を見つける必要があります。

void my_putchar(char c)
{
write(1, &c, 1);
}
于 2013-07-18T12:37:10.667 に答える