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

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

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

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

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

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

若 △ < 0,输出:无实根

 

题目输入

a,b,c

题目输出

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

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

若无实根,则输出 无实根

输入/输出样例

输入格式

1,2,1

输出格式

-1.00

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("无实根");
		}
	}
}