先說一下中間出現的問題,開三次方的時候不能直接pow(x,1.0/3.0); 要分x大於零小於零,pow只接受大於零的引數。
另外,由於工程中只考慮實數,這裡複數沒有實現。
#pragma once
class cubicsolute
void judge();
double getx1()
double getx2()
double getx3()
private:
double a,b,c,d;
double a,b,c;
double delt;//判別式
double x1,x2,x3;
};
#include "cubicsolute.h"
#include cubicsolute::cubicsolute(void)
cubicsolute::~cubicsolute(void)
//δ根的判別式
void cubicsolute::judge()
//δ=b2-4ac>0時,公式2
if (delt>0)
//當δ=b2-4ac=0時,公式3
if (delt==0&&(a!=0))
//當δ=b2-4ac<0時,公式4
if (delt<0)
{ double t = (2*a*b-3*a*b)/(2*a*pow(a,0.5));//(a>0,-1
有缺陷的一元三次方程求解設計(盛金公式)
先放 include include cube sqrt.h double abs double x double cube sqrt double x return middle include include include cube sqrt.h using namespace std equ...
一元三次方程求解
有形如 ax 3 bx 2 cx d 0這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求由小到大依次在同一行輸出這三個實根 根與根之間留有空格 並精確到小數點後2位。輸入有多行測試資料...
一元三次方程求解
問題描述 有形如 ax 3 bx 2 cx d 0 這樣的乙個一元三次方程。給出該方程中各項的係數 a,b,c,d 均為實數 並約定該方程存在三個不同實根 根的範圍在 100至100之間 且根與根之差的絕對值 1。要求三個實根。輸入格式 四個實數 a,b,c,d 輸出格式 由小到大依次在同一行輸出這...