题解 | 计算一元二次方程

#include <stdio.h>
#include <math.h>
int main()
{
	double a,b,c,x1,x2,d;
	while(scanf("%lf %lf %lf",&a,&b,&c)!=EOF){
	d=b*b-4*a*c;
	if(a==0)
	{
		printf("Not quadratic equation\n");
	}
	else
	{
		if(d==0)
		{
            if((-b+sqrt(d))*1.0/2/a==-0.00)
            {
                printf("x1=x2=0.00\n");
            }
            else
			printf("x1=x2=%.2lf\n",(-b+sqrt(d))*1.0/2/a);
		}
		else if(b*b-4*a*c>0)
		{
			printf("x1=%.2lf;x2=%.2lf\n",(-b-sqrt(d))*1.0/2/a,(-b+sqrt(d))*1.0/2/a);
		}
		else
		{
			printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\n",-b*1.0/2/a,sqrt(-d)*1.0/2/a,-b*1.0/2/a,sqrt(-d)*1.0/2/a);
		}
	}
    }
	return 0;
}

注意点

1.求根公式

2.虚部实部注意i加在虚部后面

3.考虑多种情况

全部评论

相关推荐

04-03 22:39
重庆大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务