c语言解一元二次方程用函数
时间: 2025-01-15 13:21:31 浏览: 62
在C语言中,可以通过函数来解一元二次方程。一元二次方程的标准形式为ax^2 + bx + c = 0,其中a、b和c是已知系数。要解这个方程,可以使用求根公式:x = (-b ± √(b^2 - 4ac)) / (2a)。以下是使用C语言编写的一个示例程序:
```c
#include <stdio.h>
#include <math.h>
// 定义一个函数来解一元二次方程
void solveQuadratic(double a, double b, double c) {
double discriminant, root1, root2;
// 计算判别式
discriminant = b * b - 4 * a * c;
// 判断判别式的值
if (discriminant > 0) {
// 两个不同的实数根
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程有两个不同的实数根: %.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) {
// 两个相同的实数根
root1 = root2 = -b / (2 * a);
printf("方程有两个相同的实数根: %.2lf\n", root1);
} else {
// 两个共轭复数根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("方程有两个共轭复数根: %.2lf+%.2lfi 和 %.2lf-%.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
// 输入系数
printf("请输入一元二次方程的系数 a, b 和 c: ");
scanf("%lf %lf %lf", &a, &b, &c);
// 检查a是否为零
if (a == 0) {
printf("系数a不能为零,这不是一元二次方程。\n");
} else {
// 调用函数解方程
solveQuadratic(a, b, c);
}
return 0;
}
```
这个程序首先定义了一个函数`solveQuadratic`来解一元二次方程。该函数接受三个参数,分别对应方程的系数a、b和c。然后,程序计算判别式,并根据判别式的值判断方程的根的情况。最后,在`main`函数中,程序从用户那里获取系数a、b和c,并调用`solveQuadratic`函数来解方程。
阅读全文
相关推荐


















