Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何继续循环程序直到';y';或';n';输入_C - Fatal编程技术网

C 如何继续循环程序直到';y';或';n';输入

C 如何继续循环程序直到';y';或';n';输入,c,C,我希望程序继续要求用户输入另一个字母,直到输入“y”或“n”。while循环无法正常工作。 这是我目前的代码: #include<stdlib.h> int main(void) { char answer; printf("Please enter a letter: "); scanf("%c", &answer); while (answer!= 'y' || answer!= 'n') { printf("

我希望程序继续要求用户输入另一个字母,直到输入“y”或“n”。while循环无法正常工作。 这是我目前的代码:

#include<stdlib.h>

int main(void)
{
    char answer;

    printf("Please enter a letter: ");
    scanf("%c", &answer);

    while (answer!= 'y' || answer!= 'n')
    {
        printf("Please enter another letter:");

        scanf("%c", &answer);

    }

    printf("You entered either yes or no\n");

        system("pause");
        return 0;
}
#包括
内部主(空)
{
答案;
printf(“请输入一个字母:”);
scanf(“%c”和“应答”);
while(答案!=“y”|答案!=“n”)
{
printf(“请输入另一个字母:”);
scanf(“%c”和“应答”);
}
printf(“您输入的是或否”);
系统(“暂停”);
返回0;
}

这是一个固定版本。请注意
stdio.h
的包含,以及将
|
固定到
&&
以及
%c
之前的空格固定为
%c

#包括
#包括
内部主(空)
{
答案;
printf(“请输入一个字母:”);
scanf(“%c”和“应答”);
while(答案!='y'&&answer!='n')
{
printf(“请输入另一个字母:”);
scanf(“%c”和“应答”);
}
printf(“您输入的是或否”);
系统(“暂停”);
返回0;
}
应该是

 while (answer!= 'y' && answer!= 'n')

因为第一个条件对于变量中的每个字符始终为真。

answer!='回答n'
总是正确的。请稍微考虑一下您的条件逻辑。此外,当您修复循环中的
scanf
调用以读取字符时,请在格式字符串中添加前导空格,以跳过上次调用中留在输入缓冲区中的换行符。如果用户未输入yes(y)或no(n),不断要求他们输入字母
答案
不能同时是
'y'
'n'
,因此至少有一个条件始终为真。但是,当编译器要求我再次输入字母时,它会不断循环,不会出于某种原因在屏幕上停止,但当我这样做时,编译器让我第二次输入一个字母,屏幕继续循环。我不再使用它了,我只是把它错误地保留在typing@DvR_109你试过一个用户的建议吗?使用
scanf(“%c”和&answer)?注意
“%c”
中的空格。哦,好的,是的,我现在知道了。这不是一个真正的答案。
 while (answer!= 'y' || answer!= 'n')
 while (answer!= 'y' && answer!= 'n')