题目:

假设有一个一元二次方程,有a,b,c三个系数,求该方程的根并输出,没有则输出"Error"(已

知头文件math.h中的求平方根的sqrt函数)。

分析:

要解决本题,我们首先要熟悉一元二次方程

C语言解题 || 解一元二次方程_数根

的求根公式:

C语言解题 || 解一元二次方程_数根_02

然后建立3个分支结构:

  1. 方程有2个不同实数根
  2. 方程有2个相同实数根
  3. 方程没有实数根

在分支结构中套用此公式即可解题。

代码实现:

#define _CRT_SECURE_NO_WARNINGS 1

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

int main()
{
	//方程的3个系数
	double a = 0.0;
	double b = 0.0;
	double c = 0.0;
	//方程的2个实数根
	double root_1 = 0.0;
	double root_2 = 0.0;
	//判别式,判断方程有没有实数根,或者有几个不同的实数根
	double judge = 0.0;

	//录入系数
	printf("Please enter the three coefficients of equatio:\n");
	scanf("%lf %lf %lf", &a, &b, &c);

	//计算判别式
	judge = pow(b, 2) - (4 * a * c);

	//方程有2个不同的实数根
	if (judge > 0)
	{
		root_1 = (-b + sqrt(judge)) / (2 * a);
		root_2 = (-b - sqrt(judge)) / (2 * a);
		printf("root_1 = %.2lf, root_2 = %.2lf\n", root_1, root_2);
	}
	//方程有2个相同的实数根
	else if (judge == 0)
	{
		root_1 = root_2 = -b / (2 * a);
		printf("root_1 = root_2 = %.2lf\n", root_1);
	}
	//方程没有实数根
	else
	{
		printf("Error\n");
	}

	return 0;
}

运行结果:

C语言解题 || 解一元二次方程_#include_03