注册 登录
编程论坛 C++教室

c++不会,谁能帮我?

hzr 发布于 2017-09-02 21:21, 2421 次点击
求一元二次方程
 
【题目描述】
利用公式x1 = (-b + sqrt(b*b-4*a*c))/(2*a),x2 = (-b - sqrt(b*b-4*a*c))/(2*a),求一元二次方程ax2+ bx + c =0的根,其中a不等于0。结果要求精确到小数点后5位。

【输入】
输入一行,包含三个浮点数a, b, c(它们之间以一个空格分开),分别表示方程ax2 + bx + c =0的系数。

【输出】
输出一行,表示方程的解。

若两个实根相等,则输出形式为:“x1=x2=...”;

若两个实根不等,在满足小者在前的原则,则输出形式为:“x1=...;x2 = ...“;

若无实根输出“No answer!”。

所有输出部分要求精确到小数点后5位,数字、符号之间没有空格。

【输入样例】
-15.97 19.69 12.02
【输出样例】
x1=-0.44781;x2=1.68075
4 回复
#2
hzr2017-09-02 21:22
求解!!!!!!
#3
李维5552017-09-10 17:36
#include <iostream>
#include<math.h>
#include <iomanip>
using namespace std;

int main( void )
{
    float a,b,c;
    float x1,x2;
    cin>>a>>b>>c;

    if(a==0)
      return 0;

    if((b*b-4*a*c)<0)
    {
        cout<<"no answer"<<endl;
        return 0;
    }
    else{


    x1=(-b+sqrt(b*b-4*a*c))/(2*a);
    x2=(-b-sqrt(b*b-4*a*c))/(2*a);
    if(x1==x2){
        cout<<fixed<<setprecision(5)<<"x1=x2="<<x1<<endl;
    }
    else if(x1<x2)
    cout<<fixed<<setprecision(5)<<"x1="<<x1<<";x2="<<x2<<endl;

    else if(x1>x2)
    cout<<fixed<<setprecision(5)<<"x1="<<x2<<";x2="<<x1<<endl;
        }

}
#4
jinanman2017-09-20 17:11
教科书
#5
hzr2017-10-01 21:44
只有70分
1