已知一元二次方程ax2+bx+c=0,从键盘输入a、b、c的值后,计算并输出两个根的值,结果保留两位小数。(输入的系数需满足delt>=0)C语言解答
时间: 2024-11-06 16:13:22 浏览: 75
用Java编写程序,求一元二次方程ax²+bx+c=0的根(系数在程序中给定),并输出。
在C语言中,可以使用数学库中的sqrt函数和一些条件判断来解决这个问题。下面是一个简单的程序片段,它会求解一元二次方程的根,如果判别式Δ=b² - 4ac大于等于0:
```c
#include <stdio.h>
#include <math.h>
// Function to calculate the roots of a quadratic equation
void solve_quadratic(float a, float b, float c) {
float delta = b * b - 4 * a * c; // 计算判别式
if (delta >= 0) {
float root1 = (-b + sqrt(delta)) / (2 * a); // 第一个根
float root2 = (-b - sqrt(delta)) / (2 * a); // 第二个根
printf("Roots are: %.2f and %.2f\n", root1, root2);
} else {
printf("The equation has complex roots.\n");
}
}
int main() {
float a, b, c;
printf("Enter coefficients a, b, and c for the equation ax^2 + bx + c = 0:\n");
scanf("%f %f %f", &a, &b, &c);
solve_quadratic(a, b, c);
return 0;
}
```
在这个程序里,用户需要输入三个系数,程序会计算出根,并将结果四舍五入到小数点后两位。如果判别式小于0,则说明方程有复数根。
阅读全文