-1

これは私のコードです。ユーザーは数値を入力し、それを 32 ビットの 2 進数に出力します。私が直面している問題は、入力後に「9999」が入力されてプログラムが終了するまで番号を尋ね続ける方法を見つける必要があることです(「続行するには何かキーを押してください」ではありません)。

#include "stdafx.h"
void db(unsigned int value);
int main(void)
{
    unsigned int x;//
    printf("%s", "Enter in number:"); 
    scanf_s("%d", &x);//%u=unsinged number,, pointer
    db(x);
}//end of main

void db(unsigned int value)
{
   .........................
        }
4

2 に答える 2

2

次のように、にループを追加する必要がありますmain

for (;;) {
    unsigned int x;// You may need to move this declaration to outside the loop
    printf("%s", "Enter in your student number:"); 
    scanf_s("%d", &x);//%u=unsinged number,, pointer
    if (x == 9999) break;
    displayBits(x);
}

続行するか停止するかの決定はループ本体の途中で行われるため、「永遠に」ループを使用することをお勧めします。これを実現するには複数の方法がありますが、これfor (;;)は K&R で説明されている方法であるため、他の方法よりもこの方法を使用することをお勧めします。

于 2012-10-10T16:27:58.997 に答える
1

使用する:

int main(void)
{
    unsigned int x;

    while (1)
    {
        printf("%s", "Enter in your student number:"); 
        scanf_s("%d", &x);
        if (x == 9999) break;
        else displayBits(x);
    }
    return 0;
}

また、puts("\n");とにかく改行を印刷するため、2 つの新しい行を印刷します。新しい行を 1 つだけ印刷するには、次を使用します。puts("");

于 2012-10-10T16:29:11.477 に答える