gpt4 book ai didi

c - 在 c 中使用 do while 循环从用户那里获取输入

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:59:20 25 4
gpt4 key购买 nike

我正在创建一个程序来生成下一个素数,为此我需要接受用户输入。我正在使用 do-while 循环,但它不会停止第二次接受输入。请指导我哪里做错了。谢谢!这是我的代码片段

int 
main()
{
int val=1;
char input;
do
{
val=nextprime(val);
printf("\n%d\t",val);

printf("Next Prime number? Y or N ");
scanf("%c",&input);
}
while(input != 'N' && input != 'n');
return 0;

我得到的输出是:

2   Next Prime number? Y or N y

3 Next Prime number? Y or N
5 Next Prime number? Y or N y

7 Next Prime number? Y or N
11 Next Prime number? Y or N y

13 Next Prime number? Y or N
17 Next Prime number? Y or N y

19 Next Prime number? Y or N
23 Next Prime number? Y or N y

29 Next Prime number? Y or N
31 Next Prime number? Y or N n

最佳答案

标准输入将包含 y\n(y 后跟回车)。由于您的代码将 Nn 以外的任何字符视为是,因此如果您输入 y 后跟回车,它会计算 2 个新素数。

要在读取单个字符时跳过空格,请在扫描码前放置一个空格:

scanf(" %c",&input);

关于c - 在 c 中使用 do while 循环从用户那里获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26175182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com