我正在做一项作业,要求使用二次方程来求ax^2+bx+c=0的根,输入为b&c。
#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。知道我做错了什么吗?
发布于 2017-09-22 10:18:32
您的程序实际上是将解决方案乘以a,而不是除以它。(这就是为什么它差了4倍)
r1 = (((-1)*b+sqrt(b*b-4*a*c))/2)*a);试着在2*a后面加一对括号:
r1=((-1)*b+sqrt(b*b-4*a*c))/(2*a);https://stackoverflow.com/questions/46355834
复制相似问题