scanf函数上的无穷大
这个代码有什么问题?即使键入了“1”或“2”,while循环也会继续运行scanf函数上的无穷大,c,C,这个代码有什么问题?即使键入了“1”或“2”,while循环也会继续运行 #include "stdio.h" void helper(void); int main() { int s; scanf("%d", &s); while(s!=1 || s!=2) { helper(); scanf("%d", &s); } return 0; } void helper(void) { pr
#include "stdio.h"
void helper(void);
int main() {
int s;
scanf("%d", &s);
while(s!=1 || s!=2) {
helper();
scanf("%d", &s);
}
return 0;
}
void helper(void) {
printf("Please use 1 or 2 as option");
}
我想你是说
while(s!=1 && s!=2)
我想你是说
while(s!=1 && s!=2)
任何数字要么不等于一,要么不等于二:你可以肯定:) 您可能想写的是
&&
while(s!=1 && s!=2) {
}
任何数字要么不等于一,要么不等于二:你可以肯定:) 您可能想写的是
&&
while(s!=1 && s!=2) {
}
您的
|
应该是while
循环中的&
。您的|
应该是while
循环中的&您需要将|改为&.您需要将|改为&.while。任何变量都不能有两个值。因此,使用&&而不是| |在检查时检查您的状况。任何变量都不能有两个值。因此,请使用&&而不是||
while(s!=1 || s!=2)
翻译为:
while(s is not 1 OR s is not 2)
所以如果s
是1
,那么它不是2
。。。也就是说你一直在循环
翻译为:
while(s is not 1 OR s is not 2)
所以如果s
是1
,那么它不是2
。。。这意味着您将继续循环。您需要更改以下内容:
while(s!=1 || s!=2) { helper(); scanf("%d", &s); }
为此:
while(s!=1 && s!=2) { helper(); scanf("%d", &s); }
工作
继续编码 您需要更改以下内容:
while(s!=1 || s!=2) { helper(); scanf("%d", &s); }
为此:
while(s!=1 && s!=2) { helper(); scanf("%d", &s); }
工作
继续编码 尝试将|
更改为&
尝试将|
更改为&
while(s!=1 && s!=2) {
}