求一元二次方程ax**2+bx+c=0的根abc的值在运行时由用户输入它们满足bx**2-4ac>=0
时间: 2024-11-22 15:34:04 浏览: 19
在Python中,你可以使用`cmath`模块来处理复数,因为当判别式`b**2 - 4*a*c`小于0时(即`bx^2 - 4ac >= 0`不成立),一元二次方程会有两个复数解。以下是一个简单的程序,它会提示用户输入a、b、c的值,并计算并打印方程的根:
```python
import cmath
# 获取用户输入
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
# 计算判别式
discriminant = b**2 - 4*a*c
# 检查判别式的符号
if discriminant >= 0:
# 实数解
roots = (-b + cmath.sqrt(discriminant)) / (2 * a), (-b - cmath.sqrt(discriminant)) / (2 * a)
else:
# 复数解
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
roots = (real_part, complex(real_part, imaginary_part))
print("方程的根为:", roots)
```
当你运行这个程序时,如果`b**2 - 4*a*c`大于等于0,那么输出将是实数根;如果小于0,输出将是两个复数根。
相关问题
编程求一元二次方程ax2+bx+c=0的根,要求:abc三个参数使用scanf语句输入。
好的,可以使用以下代码实现:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
printf("请输入一元二次方程ax^2 + bx + c = 0的系数a, b, c:\n");
scanf("%lf%lf%lf", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的两个实数根分别为:x1 = %lf, x2 = %lf\n", x1, x2);
}
else if (delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("方程的两个相等实数根为:x1 = x2 = %lf\n", x1);
}
else
{
printf("方程无实数根!\n");
}
return 0;
}
```
其中,使用`scanf`函数读入三个参数a、b、c,然后根据判别式delta的大小,分别计算出方程的两个实数根或一个重根,或者无实数根。
如何写输入三个整数abc输出一元二次方程ax2+bx+c…=0的根的代码
以下是一个示例代码:
```python
import math
a = int(input("请输入a的值:"))
b = int(input("请输入b的值:"))
c = int(input("请输入c的值:"))
delta = b**2 - 4*a*c
if delta < 0:
print("该方程无实数解")
elif delta == 0:
x = -b / (2*a)
print("该方程有一个实数解:x =", x)
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
print("该方程有两个实数解:x1 =", x1, "x2 =", x2)
```
这个代码可以让用户输入三个整数a、b、c,然后计算一元二次方程ax^2 + bx + c = 0的根,并输出结果。如果方程无实数解,则输出提示信息。
阅读全文