用C语言编写判断一元二次方程是否有实解
时间: 2024-09-25 09:02:10 浏览: 67
在C语言中,判断一元二次方程ax² + bx + c = 0是否有实数解,通常需要计算判别式Δ = b² - 4ac。如果判别式大于0,则有两个不相等的实数根;等于0则有一个重根;小于0则无实数根。以下是简单的函数实现:
```c
#include <stdio.h>
#include <math.h>
int hasRealSolution(float a, float b, float c) {
float discriminant = b * b - 4 * a * c;
if (discriminant > 0)
return 1; // 有两个不相等的实根
else if (discriminant == 0)
return 0; // 有一个重根
else
return -1; // 没有实数根
}
int main() {
float a, b, c;
printf("请输入一元二次方程的系数a、b、c:");
scanf("%f %f %f", &a, &b, &c);
int solutionType = hasRealSolution(a, b, c);
switch (solutionType) {
case 1:
printf("方程有实数解。\n");
break;
case 0:
printf("方程有一个实数解(重根)。\n");
break;
case -1:
printf("方程没有实数解。\n");
break;
}
return 0;
}
```
在这个程序中,用户输入三个系数,`hasRealSolution` 函数计算并返回判别式的值,然后主函数根据结果给出相应的提示。
阅读全文