游客 Signup | Login
中文 | En

2991 - 【设计型】第5章:选择控制结构 一元二次方程判断

编程求一元二次 a*x^2+b*x+c = 0 的根。包括以下判断和结果:

若a = 0,输出结果:不是一元二次方程

若 △ > 0,输出两个不等实根。

若 △ = 0,输出两个相等实根。

若 △ < 0,输出:无实根

 

Input

a,b,c

Output

若a = 0 ,则输出   不是一元二次方程

若有根,则输出   x1,x2 (结果保留两位小数)

若无实根,则输出 无实根

Examples

Input

1,2,1

Output

-1.00

Solution C

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
main()
{
	float a,b,c;
	float delta,x1,x2;
	const double zero = 1e-9;
	int sign = 0;
	scanf("%f,%f,%f",&a,&b,&c);
	if(fabs(a)<zero)
	{
		printf("不是一元二次方程");
		exit(0);
	}
	delta = b*b-4*a*c;
	if(fabs(delta)<zero)
	{
		printf("%0.2f",-b/(2*a));
	}
	else
	{
		if(delta > 0)
			sign = 1;
		else
			sign = 0;
		delta = sqrt(fabs(delta));
		x1 = -b/(2*a);
		x2 = delta/(2*a);
		if(sign)
		{
			printf("%0.2f,%0.2f",x1+x2,x1-x2);
		}
		else
		{
			printf("无实根");
		}
	}
}
Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题