c++代码问题

为什么不论输入哪个数suc都+1?... 为什么不论输入哪个数suc都+1? 展开
 我来答
郝在益
2017-09-20 · TA获得超过2079个赞
知道小有建树答主
回答量:1496
采纳率:54%
帮助的人:615万
展开全部

你这个错误是一个简单又特别容易犯的错误。

在C语言中,我们需要搞清楚=和==的差别:

1、=,一个等号,在C语言中,只是代表的赋值操作。

2、==,两个等号,在C语言中,才是代表的判断相等的。

而你的程序的if中,写的是一个=号,所以程序会先执行a=x+y,然后才将a的值作为if的判断条件,这个时候,你的a为0,这if不进入,a不为0,则进入。所以你的if语句才会一直执行。当然,也并不是永远都会进入的,如果你的x+y正好等于0,那么if条件就不会成立了,但是在你的程序中x和y都是正数,所以永远都会执行。

那么对于这种容易犯的错误该怎么避免了?

1、要牢记=和==的区别。

2、我们一般会将常量、表达式等不能被修改的值写到==的左边,这样即使你忘记写了一个=,那么在编译的时候编译器就能清晰的给你显示错误信息,因为常量、表达式不能被赋值,这样就能很好的避免错误,还能借住编译器给出错误信息。


比如:

if(a == 0)  -->   if(0 == a)
microroom
科技发烧友

2017-09-20 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:7118
采纳率:83%
帮助的人:1532万
展开全部
将if(a=(x+z))改成if(a==(x+z))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式