用c语言编写程序,输入a,b,c值,输出一元二次方程的根
时间: 2024-10-16 11:06:28 浏览: 16
在C语言中,我们可以使用牛顿法或者公式法来计算一元二次方程ax^2 + bx + c = 0的根,其中a、b和c是用户输入的系数。这里我们给出一个简单的公式法的例子:
```c
#include <stdio.h>
#include <math.h>
// 函数声明,计算判别式并返回两个解
double quadraticRoots(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 root1 = quadraticRoots(a, b, c);
double root2 = quadraticRoots(a, b, c); // 由于公式法会得到相同的根,这里只需计算一次
printf("一元二次方程的两个根是: %.2f 和 %.2f\n", root1, root2);
return 0;
}
// 函数实现 - 计算一元二次方程的根
double quadraticRoots(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
// 分区讨论:如果判别式大于等于0,有两个实数根;小于0则无实数根
if (discriminant >= 0) {
double sqrtDiscriminant = sqrt(discriminant);
return (-b + sqrtDiscriminant) / (2 * a), (-b - sqrtDiscriminant) / (2 * a);
} else {
return complex(0, -c / a); // 返回复数根
}
}
```
阅读全文