我如何使我的代码正常工作?循环在不应该执行的情况下以某种方式终止

时间:2019-06-10 08:59:20

标签: c cs50

我最近启动了cs50,当时我正在研究问题1,我的代码有问题,我无法弄清楚出什么问题了。问题是要输入1到8之间的一个数字。如果您没有输入1到8(含)之间的数字,则会再次提示。

$ ./mario
Height: -1
Height: 0
Height: 42
Height: 50
Height: 4

我尝试使用do while循环,但是如果输入错误的数字或正确的数字,则循环终止。

int main(void) {

    int n;
    do {

        printf("Height: ");
        n = scanf("%d", &n);

    }while(n < 1 || n > 8);
}

它应该像下面那样工作。

$ ./mario
Height: -1
Height: 0
Height: 42
Height: 50
Height: 4
Stored: 4

但这是我在CLion中运行它时给出的信息。

C:\Users\acer\CLionProjects\untitled5\cmake-build-debug\hello.exe
Height:11
Process finished with exit code 0

1 个答案:

答案 0 :(得分:1)

您无需将扫描返回值分配给变量。

如果要从客户端扫描变量'n',只需:

scanf("%d", &n);

代替

n = scanf("%d", &n);

按照此链接可以帮助您了解更多 https://computer.howstuffworks.com/c7.htm