-1

这是我的代码。它让用户输入数字,然后将其输出为 32 位二进制数。我面临的问题是我需要找到一种方法,以便在输入后一直询问您的数字,直到输入“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 个新行,因为它无论如何都会打印一个换行符。要仅打印一个新行,请使用puts("");

于 2012-10-10T16:29:11.477 回答