C++ while为什么会无限循环?
intmain(){inta,b=0,x;scanf("%d",&x);for(a=10;a<=x;a++){//y=a%10;while(a){b=b*10+a%10;...
int main()
{
int a,b=0,x;
scanf("%d", &x);
for(a=10;a<=x;a++)
{ //y=a%10;
while(a)
{
b = b*10+a%10;
a /= 10; //a=a/10
cout<<" "<<a<<" "<<b;
system("pause");
}
if(b==a)
{
cout<<" "<<a;
}
}
return 0;
} 展开
{
int a,b=0,x;
scanf("%d", &x);
for(a=10;a<=x;a++)
{ //y=a%10;
while(a)
{
b = b*10+a%10;
a /= 10; //a=a/10
cout<<" "<<a<<" "<<b;
system("pause");
}
if(b==a)
{
cout<<" "<<a;
}
}
return 0;
} 展开
3个回答
展开全部
for(a=10;a<=x;a++){
while(a){b=b*10+a%10;a/=10;
cout<<""<<a<<""<<b;system("pause");}
}
因为这里的while循环每次到a==0时就结束循环,执行a++就变成1,然而因为x是一个大于9的正数(否则就不会进入循环),就会不停地重复以上的操作,所以在这里,是for循环发生了死循环。
while(a){b=b*10+a%10;a/=10;
cout<<""<<a<<""<<b;system("pause");}
}
因为这里的while循环每次到a==0时就结束循环,执行a++就变成1,然而因为x是一个大于9的正数(否则就不会进入循环),就会不停地重复以上的操作,所以在这里,是for循环发生了死循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
while循环的用法是
while(判断条件)
如果判断条件为真,则实行循环内部代码;
如果判断条件为假,则跳出循环,执行后续代码。
而判断条件为真的时候,值是1;判断条件为假的时候,值是0
故而,while 1是无限循环.
----仅供参考
while(判断条件)
如果判断条件为真,则实行循环内部代码;
如果判断条件为假,则跳出循环,执行后续代码。
而判断条件为真的时候,值是1;判断条件为假的时候,值是0
故而,while 1是无限循环.
----仅供参考
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询