首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回错误答案的简单C++二次方程求解器

返回错误答案的简单C++二次方程求解器
EN

Stack Overflow用户
提问于 2017-09-22 10:15:54
回答 1查看 600关注 0票数 2

我正在做一项作业,要求使用二次方程来求ax^2+bx+c=0的根,输入为b&c。

代码语言:javascript
复制
#include <cmath>
#include <iostream>
using namespace std;

int main()
{
   int a, b, c;

   cout << "Enter coefficients a b c: " << endl;
   cin >> a >> b >> c;
   double r1, r2;

   r1=((-1)*b+sqrt(b*b-4*a*c))/2*a;

   r2=((-1)*b-sqrt(b*b-4*a*c))/2*a;


   cout << "The roots are: " << r1 << " and " << r2 << endl;

   return 0;
}

然而,当我输入2-88时,正确的答案是2和2,但运行程序后我得到的是8和8。知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2017-09-22 10:18:32

您的程序实际上是将解决方案乘以a,而不是除以它。(这就是为什么它差了4倍)

代码语言:javascript
复制
r1 = (((-1)*b+sqrt(b*b-4*a*c))/2)*a);

试着在2*a后面加一对括号:

代码语言:javascript
复制
r1=((-1)*b+sqrt(b*b-4*a*c))/(2*a);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46355834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档