很容易的一个C语言程序出错

输入1,1,1后就这样了,应该要显示方程无解的啊。题目是求一元二次方程ax^2+bx+c=0的解,我觉得自己的程序没有什么问题啊,但是build后提示有一个警告,老师说程... 输入1,1,1后就这样了,应该要显示方程无解的啊。
题目是求一元二次方程ax^2+bx+c=0的解,我觉得自己的程序没有什么问题啊,但是build后提示有一个警告,老师说程序逻辑错误,但是还是不清楚哪里错了。很容易的题目啦,但是我刚刚入门,所以不是很懂。
展开
 我来答
秋山木叶
2015-10-20 · TA获得超过197个赞
知道小有建树答主
回答量:178
采纳率:100%
帮助的人:94.8万
展开全部
这个看上去就很明显啊,你们老师尽然看不出来?真的这这…… if(temp=0)这里表达错了,等于号不是“=”而是“==”。
追问
是呢,惭愧啊,好明显的错误,我太愚蠢了。显示是没有警告了,但是运行还是不对。
追答
还有一点,这里是float 浮点数据,你是不能用等于号的,要用小于等于"<="
改成这样就没错了:
if(temp<0)
{
---
}
else if(temp<=0)//如果这里不是用else if 的话,那么else有可能是小于0也有可能是大于0
{
-----
}
else
{
-----
}
落叶l无情
2015-10-20 · TA获得超过1417个赞
知道大有可为答主
回答量:1372
采纳率:0%
帮助的人:1428万
展开全部
if(temp<0)执行完后,继续执行下面一个if语句,当temp<0时会执行else语句,这显然逻辑有问题。
更多追问追答
追问
if是执行了一个然后继续执行没错啊,但是小于0不是执行方程无解的那个操作吗?
追答
没错,是执行了,显示"程序无解",只是你显示的乱码而已,后面逻辑有问题,temp<0时,显示"程序无解“后,继续执行,会执行到else里面,求一个负数的sqrt,明显有问题
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式