题解 | #计算一元二次方程#

计算一元二次方程

http://www.nowcoder.com/practice/7da524bb452441b2af7e64545c38dc26

#include <stdio.h>
#include <math.h>
double zhengen(double m, double n, double d)//实现一元二次方程求根公式函数+
{
	double x = 0;
	x = (-n + sqrt(d)) / (2 * m);
	return x;
}
double fugen(double m, double n, double d)//实现一元二次方程求根公式函数-
{
	double x = 0;
	x = (-n - sqrt(d)) / (2 * m);
	return x;
}
double shibu(double m, double n)
{
	double s = 0;
	s = (-n) / (2 * m);
	return s;
}
double xubu(double m, double d)
{
	double xu = 0;
	xu = sqrt(-d) / (2 * m);
	return xu;
}
int main()
{
	double a = 0, b = 0, c = 0,x1=0,x2=0;
	while(scanf("%lf %lf %lf", &a, &b, &c)!=EOF)
	{
		double derta = pow(b, 2) - 4 * a * c;
		if (a != 0)
		{
			if (derta == 0)
			{
				x1 = x2 = zhengen(a,b,derta);
				printf("x1=x2=%.2lf\n", x1);
			}
			else if (derta > 0)
			{
				x1 =( zhengen(a, b, derta)> fugen(a, b, derta)) ? fugen(a, b, derta) : zhengen(a, b, derta);
				x2 =(zhengen(a, b, derta) > fugen(a, b, derta)) ? zhengen(a, b, derta) : fugen(a, b, derta);
				printf("x1=%.2lf;x2=%.2lf\n",x1,x2);
			}
			else if (derta < 0)
			{

				printf("x1=%.2lf-%.2lfi;x2=%.2lf+%.2lfi\n",shibu(a, b),xubu(a, derta), shibu(a, b), xubu(a, derta));
			}
		}
		else
		{
			printf("Not quadratic equation");
		}
	}
	return 0;
}
全部评论
这个能通过吗?为什么我通不过?
点赞 回复 分享
发布于 2022-07-07 18:31

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务