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;
}
展开
 我来答
紫薇参星
科技发烧友

2022-01-22 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3605万
展开全部

你的程序的问题是把for循环变量a,在while循环中改变大小了,导致无限循环.

解决方法是把a的值赋给临时变量t,用t做while循环.

还有x的输入要用cin.

另外,对于每个数a,b都要初始化为0.

改完的程序如下(见图)

听不清啊
高粉答主

2022-01-22 · 说的都是干货,快来关注
知道顶级答主
回答量:7.8万
采纳率:89%
帮助的人:1.9亿
展开全部
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循环发生了死循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
glass_nfl49ac
2022-01-22 · TA获得超过1031个赞
知道大有可为答主
回答量:2711
采纳率:79%
帮助的人:610万
展开全部
while循环的用法是
while(判断条件)
如果判断条件为真,则实行循环内部代码;
如果判断条件为假,则跳出循环,执行后续代码。
而判断条件为真的时候,值是1;判断条件为假的时候,值是0
故而,while 1是无限循环.
----仅供参考
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式