4.编写一个C语言程序,求ax’+bx+c=0方程的根。a、b、C日键盘输入。要求 b?-4ac>0,若其值小于等于0,则继续重新输人a、b、c的值(循环结构实
时间: 2024-11-29 19:38:57 浏览: 3
在C语言中,可以使用二次方程求根公式来解决这个问题。但因为题目要求在b² - 4ac > 0的情况下才会计算根,所以我们需要使用循环结构来确保条件满足后再计算。下面是一个示例程序:
```c
#include <stdio.h>
#include <math.h> // 引入数学库以使用sqrt函数
// 计算二次方程的根
void quadratic_root(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
double root1 = (-b + sqrt(discriminant)) / (2 * a);
double root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程的两个根是: %.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) {
double root = -b / (2 * a);
printf("方程有一个根: %.2lf\n", root);
} else {
printf("方程无实数解。\n");
}
}
int main() {
double a, b, c;
do {
printf("请输入系数a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
if (b * b - 4 * a * c <= 0) {
printf("输入的a=%lf, b=%lf, c=%lf不符合条件 b² - 4ac > 0,请重新输入。\n", a, b, c);
}
} while (b * b - 4 * a * c <= 0);
quadratic_root(a, b, c);
return 0;
}
```
在这个程序中,我们先让用户输入a, b, c的值,然后检查判别式(b² - 4ac)是否大于0。如果不是,我们就提示用户重新输入。当条件满足时,我们使用二次方程求根公式计算并打印出根。
阅读全文