@Backer 2021-10-24 22:17 采纳率: 20%
浏览 107
已结题

求一元二次方程——要最简单的解法

1058:求一元二次方程
【题目描述】
利用公式x1=−b+b2−4ac√2a,x2=−b−b2−4ac√2a,求一元二次方程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

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-10-24 22:46
    关注
    #include <iostream>
    #include<iomanip>
    using namespace std;
    int main()
    {
        double  a, b, c, disc, x1, x2;
        cin>>a>>b>>c;
        disc = b*b - 4*a*c;
        if (disc < 0)
            cout<<"No Answer!";
        else if(disc == 0)
            cout<<"x1=x2="<<fixed<<setprecision(5)<<-b/(2*a);
        else
        {
            x1 = (-b+sqrt(disc))/(2*a);
            x2 = (-b-sqrt(disc))/(2*a);
            cout<<"x1="<<fixed<<setprecision(5)<<x1;
            cout<<";x2="<<fixed<<setprecision(5)<<x2;
        }
        return 0;
    }
    
    
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月19日
  • 创建了问题 10月24日

悬赏问题

  • ¥15 这个如何解决详细步骤
  • ¥15 在微信h5支付申请中,别人给钱就能用我的软件,这个的所属行业是啥?
  • ¥30 靶向捕获探针设计软件包
  • ¥15 别人给钱就能用我的软件,这个的经营场景是啥?
  • ¥15 react-diff-viewer组件,如何解决数据量过大卡顿问题
  • ¥20 遥感植被物候指数空间分布图制作
  • ¥15 安装了xlrd库但是import不了…
  • ¥20 Github上传代码没有contribution和activity记录
  • ¥20 SNETCracker
  • ¥15 数学建模大赛交通流量控制