我最近启动了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
答案 0 :(得分:1)
您无需将扫描返回值分配给变量。
如果要从客户端扫描变量'n',只需:
scanf("%d", &n);
代替
n = scanf("%d", &n);
按照此链接可以帮助您了解更多 https://computer.howstuffworks.com/c7.htm