程序,解ax2+bx+c=0
时间: 2023-12-12 14:04:34 浏览: 23
以下是 Python 代码实现:
```python
import math
# 读取用户输入的系数
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
# 计算判别式
delta = b ** 2 - 4 * a * c
# 判断是否有实根
if delta < 0:
print("无实根")
elif delta == 0:
x = -b / (2 * a)
print("唯一实根为:", x)
else:
x1 = (-b + math.sqrt(delta)) / (2 * a)
x2 = (-b - math.sqrt(delta)) / (2 * a)
print("两个实根分别为:", x1, x2)
```
解释一下代码:
首先使用 `input` 函数分别读取用户输入的系数 a、b、c,并将其转换为浮点数类型。
然后计算判别式 delta,根据判别式的值判断方程是否有实根:
- 当 delta 小于零时,方程无实根;
- 当 delta 等于零时,方程有唯一实根,根据公式 `-b / (2 * a)` 计算出实根的值;
- 当 delta 大于零时,方程有两个实根,根据公式 `(-b ± √delta) / (2 * a)` 计算出实根的值。
最后使用 `print` 函数输出实根的值。需要注意的是,当 delta 小于零时需要输出 "无实根",而不是输出一个错误的值。
相关问题
ax²+bx+c=0的c语言程序
这是一个求解一元二次方程ax²+bx+c=0的C程序:
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2;
printf("请输入a, b, c的值:\n");
scanf("%f%f%f", &a, &b, &c);
delta = b * b - 4 * a * c;
if(delta < 0)
{
printf("方程无实根!\n");
}
else if(delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实根:x1 = x2 = %.2f\n", x1);
}
else
{
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程有两个不相等的实根:x1 = %.2f, x2 = %.2f\n", x1, x2);
}
return 0;
}
c语言解方程ax2+bx+c=0 a≠0
以下是一种用C语言解二次方程的方法:
```
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, delta, x1, x2;
printf("Enter a, b, c: ");
scanf("%f %f %f", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta < 0) {
printf("The equation has no real roots.\n");
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("The equation has one real root: %.2f\n", x1);
} else {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("The equation has two real roots: %.2f and %.2f\n", x1, x2);
}
return 0;
}
```
在这个程序中,用户被要求输入三个浮点数a,b和c,分别代表二次方程的系数。然后,程序先计算delta,即判别式,根据delta的值判断方程的解的情况:
1. delta小于0,方程没有实数解。
2. delta等于0,方程有一个实数解,解为-x1=b/(2a)。
3. delta大于0,方程有两个实数解,解为x1=(-b+√delta)/(2a),x2=(-b-√delta)/(2a)。
最后输出方程的实数解。
请注意,如果你有特殊的要求或需要进一步验证,可能需要改进和修改上述程序。