C++ 外部while循环有什么问题?
每当我运行上述代码时,它都会显示一个随机数。但是在那之后,即使我输入了没有引号的ch as y的值,当然!标记为问题循环的while循环无法继续。是的,我知道这是某种运行时错误,但是有谁能指定是什么导致了这个问题,并且通过对代码进行什么样的精确更改可以让我成功地运行它吗?您将ch定义为int,这意味着cin将把输入解释为一个整数,并将其读入ch。您可以观察到,当您输入121并且代码继续时,会发生这种情况。要解决您的问题,只需更改 int x,y,n=0,ch='y'; 进入 int x,y,n=0; char ch='y'; 另外,您有一个永远不会发生的if语句,因此您最好去掉ifn>3&&n您将ch定义为int,这意味着cin将把输入解释为整数并将其读入ch。您可以观察到,当您输入121并且代码继续时,会发生这种情况。要解决您的问题,只需更改 int x,y,n=0,ch='y'; 进入 int x,y,n=0; char ch='y';C++ 外部while循环有什么问题?,c++,loops,while-loop,nested-loops,C++,Loops,While Loop,Nested Loops,每当我运行上述代码时,它都会显示一个随机数。但是在那之后,即使我输入了没有引号的ch as y的值,当然!标记为问题循环的while循环无法继续。是的,我知道这是某种运行时错误,但是有谁能指定是什么导致了这个问题,并且通过对代码进行什么样的精确更改可以让我成功地运行它吗?您将ch定义为int,这意味着cin将把输入解释为一个整数,并将其读入ch。您可以观察到,当您输入121并且代码继续时,会发生这种情况。要解决您的问题,只需更改 int x,y,n=0,ch='y'; 进入 int x,y,n=
也有一个IF语句,它永远不会发生,所以你最好去掉IFN > 3 &它是:C++还是C?因为CH是int。将它改为char。N3是什么时候的?是C++还是C?因为CH是int。将它改为char。N3何时才是真的?
#include<iostream>
using namespace std;
int main()
{
int x,y,n=0,ch='y';
while(ch=='y')//problem loop
{
gno:
x=rand()%9999+1000;
y=x;
n=0;
while(y>0)
{
y=y/10;
n++;
if(n>3&&n<3)
goto gno;
}
cout<<x<<endl;
cin>>ch;
}
return 0;
}