21xrx.com
2024-11-22 13:39:55 Friday
登录
文章检索 我的文章 写文章
C++程序求解一元二次方程的方法
2023-07-02 21:36:05 深夜i     --     --
C++ 一元二次方程 求解方法

一元二次方程在数学中是一类非常基础的方程,其形式一般可以表示为 ax^2+bx+c=0 的形式。在计算机编程中,特别是使用C++语言编写程序时,求解一元二次方程也是一个非常基础的问题。

C++要实现求解一元二次方程的方法,可以采用一般解法或者公式法。其中,一般解法使用到了开方函数,具体的代码如下:


#include<iostream>

#include<cmath>

using namespace std;

int main()

{

 double a,b,c,delta,x1,x2;

 cout<<"Input the parameters a,b,c of the quadratic equation ax^2+bx+c=0:"<<endl;

 cin>>a>>b>>c;

 delta=b*b-4*a*c;

 if(delta<0)

  cout<<"No real roots."<<endl;

 

 else if(delta==0){

  x1=x2=-b/(2*a);

  cout<<"There is only one real root: "<<x1<<endl;

 }

 else{

  x1=(-b+sqrt(delta))/(2*a);

  x2=(-b-sqrt(delta))/(2*a);

  cout<<"There are two real roots: "<<x1<<" and "<<x2<<endl;

 }

 return 0;

}

上述代码中,首先输入一元二次方程的3个系数a、b和c,然后计算判别式delta,如果delta小于0,则方程没有实数解;如果delta等于0,则方程有一个重根;否则,方程有两个不同的实根。最后,分别输出计算得到的实根。

除了一般解法,C++也可以使用公式法求解一元二次方程。公式法的基本思想是使用求根公式,即解方程ax^2+bx+c=0时,可以先求出判别式delta的值,然后代入求根公式得到实根。


#include<iostream>

#include<cmath>

using namespace std;

int main()

{

 double a,b,c,delta,x1,x2;

 cout<<"Input the parameters a,b,c of the quadratic equation ax^2+bx+c=0:"<<endl;

 cin>>a>>b>>c;

 delta=b*b-4*a*c;

 if(delta<0)

  cout<<"No real roots."<<endl;

 

 else{

  x1=(-b+sqrt(delta))/(2*a);

  x2=(-b-sqrt(delta))/(2*a);

  cout<<"There are two real roots: "<<x1<<" and "<<x2<<endl;

 }

 return 0;

}

在上述代码中,首先输入方程的3个系数,然后计算判别式delta,如果delta小于0,则方程没有实数解;否则,代入求根公式计算得到实根。

无论是使用一般解法还是公式法,都能很好的实现C++程序求解一元二次方程的功能。但在实际使用中,也需要注意对判别式的正确判断和处理,以及精度和溢出的问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复