C语言实验——一元二次方程Ⅰ

C语言实验——一元二次方程Ⅰ

时间: 1ms        内存:64M

描述:

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

输入:

a,b,c的值。

输出:

两个根X1和X2,其中X1>=X2。
结果保留两位小数。

示例输入:

1 5 -2

示例输出:

0.37 -5.37

提示:

参考答案(内存最优[760]):

#include<stdio.h>
#include<math.h>
int main()
{
    int a,b,c,x,y;
    double X1,X2,z;
    scanf("%d%d%d",&a,&b,&c);
    x=b*b-4*a*c;
    z=sqrt(x);
    X1=(-b+z)/(a*2);
    X2=(-b-z)/(a*2);
    printf("%.2f %.2f",X1,X2);
    return 0;
}

参考答案(时间最优[0]):

#include <iostream> 
#include <cmath> 
#include <iomanip> 
using namespace std; 
int main() 
{ 
    float a,b,c,x1,x2,disc,p,q; 
    cin>>a>>b>>c; 
    disc=b*b-4*a*c; 
    if(disc>0) 
    {x1=(-b+sqrt(b*b-4*a*c))/(2*a); 
    x2=(-b-sqrt(b*b-4*a*c))/(2*a); 
    cout<<setiosflags(ios::fixed)<<setprecision(2); 
    cout<<x1<<" "<<x2<<endl; 
    } 
    if(disc==0) 
    {x1=x2=(-b)/(2*a); 
    cout<<setiosflags(ios::fixed)<<setprecision(2); 
    cout<<x1<<" "<<x2<<endl; 
    } 
    if(disc<0) 
    {p=(-b)/(2*a); 
    q=sqrt(-disc)/(2*a); 
    cout<<setiosflags(ios::fixed)<<setprecision(2); 
    cout<<p<<"+"<<q<<"i"<<" "<<p<<"-"<<q<<"i"<<endl; 
    } 
    return 0; 
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注