这个题目请你们能做一下
我能力有限
用C++做我用的VS2022
还请大家一起分享一下各位的方法
一元二次方程,问答里太多了。随便搜一下就有
【相关推荐】
地址:https://docs.microsoft.com/zh-cn/cpp/standard-library/cpp-standard-library-reference?view=vs-2019
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int main()
{
// https://ask.csdn.net/questions/7873710/54039096?spm=1001.2014.3001.5504
// https://www.runoob.com/cplusplus/cpp-examples-quadratic-roots.html
// https://baike.baidu.com/item/%E4%B8%80%E5%85%83%E4%BA%8C%E6%AC%A1%E6%96%B9%E7%A8%8B%E6%B1%82%E6%A0%B9%E5%85%AC%E5%BC%8F/56066624?fr=aladdin
// https://blog.csdn.net/qq_41757528/article/details/126376583
// http://c.biancheng.net/view/1763.html
double a,b,c,d,x1,x2;
scanf("%lf%lf%lf",&a,&b,&c);
d=b*b-4*a*c;
// https://www.runoob.com/cplusplus/cpp-examples-quadratic-roots.html
// https://blog.csdn.net/zhaoweining2001/article/details/115009731
// 让cout输出小数,保留小数后五位
cout << fixed << setprecision(5);
// https://blog.csdn.net/qq_41583263/article/details/113751810
if(d>0) // 判别式大于0的情况 https://baijiahao.baidu.com/s?id=1722370687157957463&wfr=spider&for=pc 第三题
{
cout<<"x1="<<((-b+sqrt(d))/(2*a))<<";x2="<<((-b-sqrt(d))/(2*a))<<endl;
}
else if(fabs(d)<=1e-15) // 判别式等于0的情况 https://baijiahao.baidu.com/s?id=1722370687157957463&wfr=spider&for=pc 第16题
{
double p = -b/(2*a);
cout<<"x1=x2="<<p<<endl;
}
// 判别式小于0的情况,有虚根
else if(d<0) // https://qb.zuoyebang.com/xfe-question/question/aecfcb8e38f761d3fa704d540264593b.html
{ // https://www.runoob.com/cplusplus/cpp-examples-quadratic-roots.html
double p = -b/(2*a);
double k = sqrt(-d)/(2*a);
if(k==0){
cout<<"x1="<<p<<"+"<<0<<"i;x2="<<p<<"-"<<0<<"i"<<endl;
}else if (k<0){
cout<<"x1="<<p<<k<<"i;x2="<<p<<"+"<<(-1*k)<<"i"<<endl;
}else{
cout<<"x1="<<p<<"+"<<k<<"i;x2="<<p<<"-"<<k<<"i"<<endl;
}
}
return 0;
}