求解一元二次方程ax*x+bx+c=0的实数解,c语言代码
时间: 2023-12-17 11:04:54 浏览: 153
```
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c;
float 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;
}
```
相关问题
编程求解一元二次方程 a*x*x+bx+c=0 的根。 用c编写程序,提示用户输入参数a,b,c,然后显示方程的求解结果。(假设输入 a,b,c后一定满足b*b-4ac>0)
要编写一个C程序来求解一元二次方程 \( ax^2 + bx + c = 0 \),你可以使用公式:
\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]
首先,确保输入的\( b^2 - 4ac \)大于0,因为只有在这种情况下,方程才有实数解。接下来,根据这个公式,我们可以计算两个解(实数解)并输出。
下面是C语言代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, discriminant, root1, root2;
printf("请输入一元二次方程的系数 a、b 和 c:\n");
scanf("%lf %lf %lf", &a, &b, &c);
// 计算判别式
discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
// 方程有两个不相等的实数解
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程的两个解为:%.2lf 和 %.2lf\n", root1, root2);
} else if (discriminant == 0) {
// 方程有一个重根
root1 = -b / (2 * a);
printf("方程有唯一的解:%.2lf\n", root1);
} else {
// 方程无实数解
printf("方程没有实数解。\n");
}
return 0;
}
```
在这个程序中,我们先获取用户输入的系数,然后检查判别式的值。如果判别式大于零,则计算两个不同的根;等于零则说明有一个重复的根;小于零时则表示无实数解。
运行此程序,用户将被提示输入a、b和c的值,然后程序将计算并显示相应的解。
C语言,求解一元二次方程ax平方+bx+c=0的根。
在C语言中,求解一元二次方程ax² + bx + c = 0通常需要使用公式法或数值计算方法,比如牛顿迭代法。这里我会给出一个简单的公式法的示例,它使用了复数运算,因为一元二次方程可能有实数根,也可能有复数根。
```c
#include <stdio.h>
#include <math.h>
// 求解一元二次方程的函数
void quadratic_solver(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 { // 复数根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("两个共轭复根是: %.2lf + %.2lfi 和 %.2lf - %.2lfi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
printf("请输入一元二次方程的系数 a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
quadratic_solver(a, b, c);
return 0;
}
```
阅读全文