C语言while(true)的问题

int main(void)
{
char isShuRu='y';
int num,jiShu=1;
while(true)
{
printf("是否查询(y/n):");
scanf("%c",&isShuRu);
if(isShuRu=='y')
{
printf("输入一个数字:");
scanf("%d",&num);
for(int i=1;i<=num/2;i++)
{
if(num%i==0)
{
jiShu++;
}
}
if(jiShu>2)
{
printf("%d不是素数\n",num);
}
else
{
printf("%d是素数\n",num);
}
}
if(isShuRu=='n')
{
break;
}

}

return 0;
}

代码运行时,输入Y查询
N退出都没问题
运行效果是
是否查询(y/n): 输入y
输入一个数字: 输入15
15不是素数
是否查询(y/n):是否查询(y/n):
我想问一下为什么出现两个是否查询
我循环体里只放了一个
还有 C与C++的WHILE和IF有什么区别
回答的好追分

问题在输入语句 scanf("%c",&isShuRu);
若有多余字符在输入缓冲区,就有问题。
所以,加 fflush:

while(1)
{
...
scanf("%c",&isShuRu);
fflush(stdin); // 清除多余字符,例如回车键
...
scanf("%d",&num);
fflush(stdin); // 清除多余字符,例如回车键
...
}
温馨提示:内容为网友见解,仅供参考
无其他回答

c语言中while(true)的输出为什么是0?
问题出在printf("doing it wrong.\\n");这一句的)被写成了中文的,编译器不识别,改成英文的)就可以了。修改后:include<stdio.h> int main(void){ int ten=10,two=2;printf("doing it right\\n");printf("%d minus %d is %d.\\n",ten,2,ten-two);printf("doing it wrong.\\n");pri...

C语言while(true)的问题
问题在输入语句 scanf("%c",&isShuRu);若有多余字符在输入缓冲区,就有问题。所以,加 fflush:while(1){ ...scanf("%c",&isShuRu);fflush(stdin); \/\/ 清除多余字符,例如回车键 ...scanf("%d",&num);fflush(stdin); \/\/ 清除多余字符,例如回车键 ...} ...

while(true)是什么意思,一直不知道什么含义。
1.while(true)是一个无限循环,表示一直为真。()里的是while的条件,true则表明条件一直为真,则while循环一直执行,为无限循环。举例:while(1),1在C语言中表示真,则:while(1)无限循环。2.一般表达式为while(条件),若条件为真,即不等于0,则循环,若条件为假则不执行while。举例:whil...

while (true) C语言
1.是的 while(true)代表一直循环,这种情况通常会造成死机,一般不这么用。但像一些比如做电子时钟时,就需要这么用。2.好像不能这么定义,你可以试试。会报这个错 error C2059:syntax error :'constant'

while循环只能用来实现无限循环的编程,对吗
1、这句话是正确的,创建无限循环可以用while(1)或while(True)开头。2、while(true)是一个无限循环,表示一直为真。()里的是while的条件,true则表明条件一直为真,则while循环一直执行,为无限循环。举例:while(1),1在C语言中表示真,则:while(1)无限循环。3、while(true)就是无限循环...

while(true){! E}的意思?
while(!E)中,!E等价于!(E==true),相当于先判断E是否为真,然后再取反。while(!E)中,实际循环执行的条件是E为假。!称为逻辑非运算符。执行逻辑 NOT 操作,用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。!反转一个表达式的“真相”。它使一个表达式从 true ...

C语言中while的用法
C语言中while的用法解析如下:一、1表示true,在bool类型取值false和true,0为false,非0为true(例如-1和2都是true)。程序中,这里1就表示永真,直到循环体内遇到break。二、while用法演示解析:1、含义:While 循环会在指定条件为真时循环执行代码块。2、语法如下:(如果忘记增加条件中所用变量的值...

C语言的一个问题,关于条件循环的
与for语句和while语句不同的是,do-while语句是后判定型循环,即先执行循环体,再判定循环条件。当循环条件为真(true)时反复执行循环体,直到循环条件为假(false)终止循环。因此,其循环体将至少被执行一次,而先判定型循环的循环体可能一次都不被执行。do-while语句的一般形式为:do 语句块 while(...

while语句判定条件为true是不执行循环代码,为false时才执行。C++,C语言...
括号里的结果为true时执行, 应该是测试的参数不对吧, 测试时应该使determin值为'y',并且count<max才能执行, 有一个不符合就不执行

c语言while(FALSE)和while(TRUE)的区别
while(i){ dosomething1...} dosomething2...以上语句的意思是当i为真时,就会运行while里面的dosomething1;当i为假时,就会直接跳过while包含的语句,运行dosomething2.

相似回答