C语言求解一元二次方程完整实现

阿橙
阿橙
发布时间:2026-10-16| 7人浏览过
原创

本文演示如何使用C语言编写一个完整的程序来求解一元二次方程ax²+bx+c=0。该程序通过数学判断分支,覆盖了包括退化为一次方程、存在两个不等实根、重根以及包含虚部的共轭复根在内的所有数学情况。

求解逻辑与准备

在编程实现前,需要明确一元二次方程 $ax^2+bx+c=0$ 在不同系数下的表现形式。核心依赖是引入数学库 <math.h>,以便使用 sqrt()(平方根)和 pow()(幂运算)等函数。

第1步:定义变量类型

为了保证计算的精度,特别是处理小数和开方结果,建议使用 double 类型的变量来存储系数 a、b、c 以及判别式 Delta 和最终的根 x1、x2。

第2步:输入系数与获取数据

提示用户输入三个参数,并利用 scanf 获取值。注意格式化字符串需匹配变量类型(例如 %lf)。

C语言完整代码实现

以下代码实现了完整的逻辑判断:

  1. a=0 且 b=0:根据 c 的值判断是否有意义。
  2. a=0 且 b≠0:方程退化为 x = -c/b。
  3. a≠0:计算判别式 Delta = b^2 - 4ac,并根据其正负进一步分为两种实根情况和一种复根情况。
#include <stdio.h>
#include <math.h>
int main()
{
	double a,b,c,x1,x2,Delta,realpart,mipart;
	//声明函数变量
	printf("a*x^2 + bx +c = 0,请输入a,b,c的值:");
	scanf("%lf,%lf,%lf",&a,&b,&c);
	if (a == 0 )   //判断a是否为0
	{
		if(b != 0)
		{
			x1 = -c / b;
			printf("方程是一元一次方程,x1=%.2f\n",x1);
		}
		else 
		{
			if (c ==0)   printf("x可以是任意值。\n");
			else  printf("方程不成立。\n");
		}
	}
	else
	{
		Delta = pow(b,2) - 4*a*c;   
		//判断delta的值
		if (Delta>0)
		{
			x1 = (-b+sqrt(Delta)) / (2*a);
			x2 = (-b-sqrt(Delta)) / (2*a);
			printf("方程的两个根为x1 = %.2f,x2 = %.2f\n",x1,x2);
		}
		else
		{
			if (Delta == 0)
			{
				x1 = - b/(2*a);
				x2 = - b/(2*a);
				printf("方程有两个相等的根:\nx1=%.2f\nx2=%.2f\n",x1,x2);
			}
			else
			{
				realpart = - b/(2*a);        //实部
				mipart = sqrt(-Delta) / (2*a);
				printf("方程有两个共轭复根:\n");
				printf("x1 = %.2f+%.5fi\n",realpart,mipart);   
				//人为地加了i,以表示虚部
				printf("x2 = %.2f-%.5fi\n",realpart,mipart);
			}
		}
	}
	return 0;
}

关键情况分析

当 Δ > 0 时

方程拥有两个不相等的实数根,此时直接使用求根公式计算即可:

当 Δ < 0 时(复数根)

在实数范围内无解,但在复数域内,方程有一对共轭复根。此时实部为 -b/2a,虚部由 sqrt(-Delta)/2a 决定:

以上就是用C语言求解一元二次方程考虑所有情况的详细内容,更多关于C语言数据结构算法的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。