求方程 ax²+bx+c 的根(a>0),用 c 语言
时间: 2024-02-06 18:11:25 浏览: 74
C语言用牛顿法求方程的根
可以使用以下代码来求解方程 ax²+bx+c 的根:
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, discriminant, root1, root2;
printf("Enter coefficients a, b and c (a > 0): ");
scanf("%f %f %f", &a, &b, &c);
// 判断 a 是否大于 0
if (a <= 0) {
printf("Error: a must be greater than 0.\n");
return 1;
}
discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("Roots are real and different\n");
printf("Root1 = %f\n", root1);
printf("Root2 = %f\n", root2);
} else if (discriminant == 0) {
root1 = root2 = -b / (2 * a);
printf("Roots are real and same\n");
printf("Root1 = Root2 = %f\n", root1);
} else {
printf("Roots are complex and different\n");
printf("Root1 = %f + %fi\n", -b / (2 * a), sqrt(-discriminant) / (2 * a));
printf("Root2 = %f - %fi\n", -b / (2 * a), sqrt(-discriminant) / (2 * a));
}
return 0;
}
```
与之前的代码相比,这段代码增加了一个判断语句,判断输入的系数 a 是否大于 0。如果 a 不大于 0,则输出错误提示并结束程序。
阅读全文