求解!C++编程题目
解决时间 2021-07-18 19:57
- 提问者网友:謫仙
- 2021-07-18 01:47
求方程ax2 +bx+c=0的根,分别求当b2-4ac大于0、等于0和小于0时的根,并输出结果。a,b,c的值从键盘输入。
最佳答案
- 五星知识达人网友:执傲
- 2021-07-18 02:49
#include<iostream.h>
#include<math.h>
void main()
{
double a,b,c,temp,x1,x2;
cin>>a>>b>>c;
temp=b*b-4*a*c;
if(temp<0)
{
temp=sqrt(-1*temp);
x1=(-1*b)/(2*a);
x2=temp/(2*a);
cout<<"方程有两复根"<<endl;
cout<<"x1="<<x1<<"+"<<x2<<"i"<<endl;
cout<<"x2="<<x1<<"-"<<x2<<"i"<<endl;
}
else
{
x1=(-1*b)/(2*a);
if(temp==0)
{
cout<<"方程有两相同实根"<<endl;
cout<<"x1=x2="<<x1<<endl;
}
else
{
x2=temp/(2*a);
cout<<"方程有两不同实根"<<endl;
cout<<"x1="<<x1+x2<<endl;
cout<<"x2="<<x1-x2<<endl;
}
}
}
全部回答
- 1楼网友:孤独的牧羊人
- 2021-07-18 03:32
#include "iostream"
#include "math.h"
using namespace std;
int main(){
float a,b,c;
float x1=1,x2=1;
cin>>a>>b>>c;
float delt = b*b-4*a*c;
if (delt<0)
{
cout<<"x1="<<-b/(2*a)<<"+"<<sqrt(-delt)/(2*a)<<"i";
cout<<"x2="<<-b/(2*a)<<"-"<<sqrt(-delt)/(2*a)<<"i";
}
else if(delt>0)
{
x1 = (-b+sqrt(delt))/(2*a);
x2 = (-b-sqrt(delt))/(2*a);
cout<<"x1="<<x1<<" ,x2="<<x2;
}
else
{
cout<<"x1=x2="<<-b/(2*a);
}
}
我要举报
大家都在看
推荐资讯