日志10
一元二次方程求根
#include <stdio.h>
#include<math.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
double a,b,c,delta,x1,x2,t1,t2;
scanf("%lf %lf %lf",&a,&b,&c);
delta=b*b-4*a*c;
if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("%.2lf %.2lf\n",x1,x2);
}
else if(delta==0)
{
x1=-b/(2*a);
printf("%.2lf %.2lf\n",x1,x1);
}
else
{
t1=-b/(2*a);
t2=(sqrt(4*a*c-b*b))/(2*a);
if(b==0)
{
t1=0.00;
}
printf("%.2lf+%.2lfi %.2lf-%.2lfi",t1,t2,t1,t2);
}
}
}
从delta大于0、小于0、等于0三种情况展开讨论
#include <stdio.h>
#include<math.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
double a,b,c,delta,x1,x2,t1,t2;
scanf("%lf %lf %lf",&a,&b,&c);
delta=b*b-4*a*c;
if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("%.2lf %.2lf\n",x1,x2);
}
else if(delta==0)
{
x1=-b/(2*a);
printf("%.2lf %.2lf\n",x1,x1);
}
else
{
t1=-b/(2*a);
t2=(sqrt(4*a*c-b*b))/(2*a);
if(b==0)
{
t1=0.00;
}
printf("%.2lf+%.2lfi %.2lf-%.2lfi",t1,t2,t1,t2);
}
}
}
从delta大于0、小于0、等于0三种情况展开讨论
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享