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