C語言實驗——一元二次方程Ⅰ (sdut oj)

SwordsMan98發表於2017-01-27


C語言實驗——一元二次方程Ⅰ

Time Limit: 1000MS Memory Limit: 65536KB



Problem Description

解一元二次方程ax2+bx+c=0的解。保證有解


Input

a,b,c的值。


Output

兩個根X1和X2,其中X1>=X2。 結果保留兩位小數。


Example Input

1 5 -2


Example Output

0.37 -5.37


Hint

 

Author

ZJGSU








參考程式碼


#include<stdio.h>
#include<math.h>
double f(double a,double b,double c)
{
    double y;
    y = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
    return y;
}
double h(double a,double b,double c)
{
    double y;
    y = (-b - sqrt(b * b - 4 * a * c)) / (2 * a);
    return y;
}
int main()
{
    double a,b,c;
    double x1,x2;
    scanf("%lf%lf%lf",&a,&b,&c);
    x1 = f(a,b,c);
    x2 = h(a,b,c);
    if(x1 < x2)
    {
        double temp = x1;
        x1 = x2;
        x2 = temp;
    }
    printf("%.2lf %.2lf\n",x1,x2);
    return 0;
}


相關文章