求方程 ax^2+bx+c=0的根,用3个函数分别求当: b^2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

求方程 ({ax}^2+bx+c=0)的根,用3个函数分别求当: (b^2-4ac)大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

题目解析

根据disc = (b^2-4ac) 的值来决定如何求根,题目本身编程不难,不过需要同学们复习一下高中的数学知识哦。

代码示例

#include<stdio.h>
#include<math.h>

//x1为第一个根,x2为第二个根
float x1, x2, disc, p, q;

void greater_than_zero(float a, float b)
{
	float m = sqrt(disc);
	x1 = (-b + sqrt(disc)) / (2 * a);
	x2 = (-b - sqrt(disc)) / (2 * a);
}

void equal_to_zero(float a, float b)
{
	x1 = x2 = (-b) / (2 * a);
}

void smaller_than_zero(float a, float b)
{
	p = -b / (2 * a);
	q = sqrt(-disc) / (2 * a);
}

int main()
{
	int a, b, c;
	printf("请输入 a b c:");
	scanf("%d %d %d", &a, &b, &c);

	printf("表达式为: %d*x^2+%d*x+%d = 0
", a, b, c);
	disc = b*b - 4 * a*c;

	if (disc > 0)
	{
		greater_than_zero(a, b);
		printf("disc>0的根为: x1=%f    x2=%f
", x1, x2);
	}
	else if (disc == 0)
	{
		equal_to_zero(a, b);
		printf("disc==0的根为:x1=%f    x2=%f
", x1, x2);
	}
	else
	{
		smaller_than_zero(a, b);
		printf("disc<0的根为:x1=%f+%f x2=%f-%f
", p, q, p, q);
	}
	return 0;
}

运行结果:

求方程 ax^2+bx+c=0的根,用3个函数分别求当: b^2-4ac大于0、等于0和小于0时的根并输出结果。从主函数输入a,b,c的值

原文地址:https://www.cnblogs.com/inta/p/13356694.html