コードの本体から 2 次方程式を除外しようとしていたところ、16 進数が返されるようになりました... 数値は非常にランダムに返され、プログラムを実行する 3 ~ 10 回ごとに値が変化しますが、変数は絶え間ない。これは私の C++ の知識をはるかに超えています。
理想的には、2 次方程式の根を倍精度データ型と基数 10 で返したいと思います。
最後にコメントアウトされたビットは、私が最初に行ったことを示すためのものですが、ほとんど冗長です。
前もって感謝します。
#include <iostream>
#include <cmath>
using namespace std;
double a,b,c,bsq;
double quadpos() {
double quadpos = (-b+(sqrt((bsq)-4.0*a*c)))/(2.0*a);
double a=1.0,b=2.0,c=1.0;
double bsq = pow(2.0,2);
return quadpos;
}
double quadneg() {
double quadneg = (-b-(sqrt((bsq)-4.0*a*c)))/(2.0*a);
return quadneg;
}
int main() {
// 4a)
cout << /*" - Question 4 - \n\n" << "Part A\n" << */quadpos << "\n" << quadneg << std::endl;
/*float a = 5.0, b = 7.0, c = -8.0;
int bsq;
bsq = pow(b,2);
double quadpos = (-b+(sqrt((bsq)-4.0*a*c)))/(2.0*a), quadneg = (-b-(sqrt((bsq)-4.0*a*c)))/(2.0*a);
cout << a << "\n" << b << "\n" << c << "\n" << bsq << "\n" << quadpos << "\n" << quadneg << endl;
The above line is used for troubleshooting
cout << "The roots of the quadratic equation 5x^2 + 7x - 8 are " << quadpos << " and " << quadneg << ".\n" << "The roots are the values of the x variable when the equation, 5x^2 + 7x - 8 is equal to 0.\n" << endl;
*/
}