c++求解一元二次方程

2025-03-07 03:24:21
推荐回答(3个)
回答1:

#include
#include
void main()
{
double a,b,c,d,e,x1,x2;
cout<<"请输入要求解的一元二次方程:"<cout<<"a: ";
cin>>a;
cout<<"b: ";
cin>>b;
cout<<"c: ";
cin>>c;
cout<d=b*b-4*a*c;
if(d<0)
{
cout<<"There is no x."<}
if(d==0)
{
cout<<"There is only x."<x1=x2=(-b)/(2*a);
cout<<"x1=x2="<}
if(d>0)
{
e=sqrt(d);
x1=(-b+e)/(2*a);
x2=(-b-e)/(2*a);
cout<<"x1="<cout<<"x2="<}
}

扩展资料:

一元二次方程成立必须同时满足三个条件:

1、是整式方程,即等号两边都是整式,方程中如果有分母;且未知数在分母上,那么这个方程就是分式方程,不是一元二次方程,方程中如果有根号,且未知数在根号内,那么这个方程也不是一元二次方程(是无理方程)。

2、只含有一个未知数;

3、未知数项的最高次数是2 。

回答2:

已调试,无错误。希望对你有所帮助!
#include
#include

void main()
{
double a,b,c,d,e,x1,x2;
cout<<"请输入要求解的一元二次方程:"<cout<<"a: ";
cin>>a;
cout<<"b: ";
cin>>b;
cout<<"c: ";
cin>>c;
cout<d=b*b-4*a*c;

if(d<0)
{
cout<<"There is no x."<}
if(d==0)
{
cout<<"There is only x."<x1=x2=(-b)/(2*a);
cout<<"x1=x2="<}
if(d>0)
{
e=sqrt(d);
x1=(-b+e)/(2*a);
x2=(-b-e)/(2*a);
cout<<"x1="<cout<<"x2="<}
}

复杂点的

#include
#include
using namespace std;
class funtion
{
public:
~funtion(){cout<<"求解完毕"<void set_value(); //输入函数
void display(); //求解函数
void show_value();//输出函数
private:
float a;
float b;
float c;
float x1;
float x2;
float r;
float i;
float pd;
};
void funtion::set_value ()
{
cout<<"输入 a b c 的值且 a b c 不可全为零"<cin>>a;
cin>>b;
cin>>c;
}
void funtion::display ()
{
pd=b*b-4*a*c;
if(pd>0)
{
x1=-b/(2*a)+sqrt(pd)/(2*a);
x2=-b/(2*a)-sqrt(pd)/(2*a);
}
else if(pd==0)
{
x1=-b/(2*a);
x2=-b/(2*a);
}
else
{
r=-b/(2*a);
i=sqrt(-pd)/(2*a);
}
}
void funtion::show_value ()
{

if(pd>0)
cout<<"x1="<}
int main()
{
funtion f;
f.set_value ();
f.display ();
f.show_value ();
return 0;
}

#include
#include
#include
void main()
{
float a,b,c;
double x1,x2;
cout<<"请输入a,b,c:"<cin>>a>>b>>c;
if(a!=0)
{
if((b*b-4*a*c)>=0)
{
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
cout<<"x1="<}
else
cout<<"无解"<
}
else
{
if(b==0)//2个=是判断相等,一个是赋值。
{
if(c==0)//这里也是一样的。
cout<<"x为任意解"<else
cout<<"无解"<}
else
{ x1=-c/b;
x2=-c/b;}
cout<<"x1="<
}

}

回答3:

//解一元二次方程的C++程序
#include
#include
#include
void sqrt1(double,double);
void sqrt2(double,double);
void printer(double,double);

void main()
{
float a,b,c;
double x1,x2;
cout<<"请输入a,b,c:"< cin>>a>>b>>c;
if(b*b-4*a*c !=0)
{
if(b*b-4*a*c)
{
sqrt1(x1,x2);
}
else
{
printer(x1,x2);

}
}
else
{
sqrt2(x1,x2);
}

}

void sqrt1(double x1,double x2) //b*b-4ac>0
{
float a,b,c;
if(a!=0)
{
x1=(-b+sqrt(b*b-4*a*c))/(2*a);
x2=(-b-sqrt(b*b-4*a*c))/(2*a);
cout<<"x1="< }

else
{
if(b==0)
{
if(c==0)
cout<<"x为任意解"< else
cout<<"无解"< }
else
{
x1=x2=-c/b;
cout<<"x1="<<"x2="< }

}
}

void sqrt2(double x1,double x2) //b*b-4ac=0

{
float a,b,c;
x1=x2=-b/(2*a);
cout<<"x1="<<"x2="<}

void printer (double x1,double x2) //b*b-4ac<0
{
float a,b,c;
char i='i';//i后面为虚部
x1=(-b/(2*a))+(i*(sqrt(b*b-4*a*c)/(2*a)));
x2=(-b/(2*a))-(i*(sqrt(b*b-4*a*c)/(2*a)));
cout<<"x1="<}