用c语言解一元二次方程ax+bx+c=0,a、b、c由键盘输入,设b-4ac>0。
时间: 2024-05-02 08:21:58 浏览: 17
```c
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, x1, x2;
printf("请输入一元二次方程的系数(a, b, c):");
scanf("%f%f%f", &a, &b, &c);
x1 = (-b + sqrt(b*b - 4*a*c)) / (2*a);
x2 = (-b - sqrt(b*b - 4*a*c)) / (2*a);
printf("方程的解为:x1=%.2f, x2=%.2f\n", x1, x2);
return 0;
}
```
注意:如果b-4ac<=0,则无实数解。
相关问题
怎么用c语言一元二次方程求解,ax^2+bx+c=0. d=b^2-4ac.
你可以使用以下代码来求解一元二次方程:
```c
#include <stdio.h>
#include <math.h>
int main() {
double a, b, c, d, x1, x2;
printf("Enter coefficients a, b and c: ");
scanf("%lf %lf %lf", &a, &b, &c);
d = b * b - 4 * a * c;
if (d < 0) {
printf("Roots are complex numbers.\n");
}
else {
x1 = (-b + sqrt(d)) / (2 * a);
x2 = (-b - sqrt(d)) / (2 * a);
printf("Roots are: %.2lf and %.2lf\n", x1, x2);
}
return 0;
}
```
在这个代码中,我们使用 `scanf` 从用户输入获取系数 `a`、`b` 和 `c`,然后计算判别式 `d`。如果 `d` 的值小于 `0`,则说明根是复数;否则,我们使用 `sqrt` 函数计算根。最后,我们使用 `printf` 打印出根的值。
用c语言输出一元二次方程ax2+bx+c=0的根.
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数a、b、c:");
scanf("%f %f %f", &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=%.2f,x2=%.2f\n", x1, x2);
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实根:x1=x2=%.2f\n", x1);
} else {
printf("方程无实根\n");
}
return 0;
}
```
输入格式:a b c,用空格分隔。
输出格式:如果方程有两个实根,输出“方程的两个实根为:x1=xx,x2=xx”,保留两位小数;如果方程有两个相等的实根,输出“方程有两个相等的实根:x1=x2=xx”,保留两位小数;如果方程无实根,输出“方程无实根”。