编写一个求一元二次方程的根的C语言小程序
时间: 2024-11-23 16:19:44 浏览: 23
在C语言中编写一个求解一元二次方程(一般形式为ax^2 + bx + c = 0)的程序,你可以使用二次公式法。下面是一个简单的示例:
```c
#include <stdio.h>
#include <math.h> // 引入数学库,用于计算平方根
// 函数声明:接受三个double类型的参数,返回两个解
void quadratic(double a, double b, double c);
int main() {
double a, b, c; // 定义方程系数
printf("请输入一元二次方程的系数 (a, b, c): ");
scanf("%lf %lf %lf", &a, &b, &c); // 输入系数
// 检查方程是否为二次方程(a != 0)
if (a == 0) {
printf("这不是一个二次方程,因为a应该是非零的.\n");
return 1;
}
// 计算并打印两个解
double discriminant = b * b - 4 * a * c;
double root1, root2;
if (discriminant > 0) { // 实数解
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程的解为:\n%.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) { // 双重实根
root1 = -b / (2 * a);
printf("方程的唯一解为 %.2lf\n", root1);
} else { // 复数解
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("方程的解为 (%.2lf, %.2lfi)\n", realPart, imaginaryPart);
}
return 0;
}
// 函数定义求解过程
void quadratic(double a, double b, double c) {
// 为了简洁起见,这里直接调用了main函数内的条件分支
}
```
阅读全文