我想計算一個二次方程ax2 + bx + c = 0
的根。我認爲我的算法是正確的,但我對函數很陌生,我認爲我的錯誤在於調用它們。你可以幫幫我嗎?先謝謝你。這是代碼。計算二次方程的根。 C++
#include<iostream>
#include<cmath>
using namespace std;
const double EPS = 1.0e-14;
int quadraticEquation(int& a,int& b, int& c)
{
if(abs(a) < EPS)
{
if(abs(b) < EPS)
{
cout << "No solution" << endl;
}
else
{
double x = - c /b ;
cout << "One root: " << x << endl;
}
}
else
{
double delta = b * b - 4 * a * c;
if(delta < 0)
{
cout << "No solution:\n" ;
}
else
{
double square_delta = sqrt(delta);
double root_1 = (-b + square_delta)/(2 * a);
double root_2 = (-b - square_delta)/(2 * a);
cout << "x1 = " << root_1 << endl;
cout << "x2 = " << root_2 << endl;
}
}
}
int main()
{
int a = 1;
int b = 2;
int c = 3;
cout << "The solution is: " << quadraticEquation(int a,int b,int c);
return 0;
}
你能解釋一下你的實際問題? – Alexandru 2014-12-13 18:37:34
正如你在你的代碼中隱含地注意到的那樣,二次方程通常有兩個解*,它們通常不是整數。 – 2014-12-13 19:08:02
@ Cheersandhth.-Alf:呃,他什麼也沒有返回。只需從函數內部打印兩個根。但他也打印未定義的返回值。 – 2014-12-13 19:09:04