求解一元二次方程的c语言代码
时间: 2023-09-05 18:04:26 浏览: 129
### 回答1:
以下是一元二次方程求解的C语言代码:
```
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, discriminant, root1, root2;
printf("请输入a、b、c的值:");
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", root1, root2);
}
else if (discriminant == 0)
{
root1 = -b / (2 * a);
printf("方程的唯一实根为:%.2lf", root1);
}
else
{
printf("方程无实根");
}
return 0;
}
```
使用该代码可以求解一元二次方程,其中 `a`、`b`、`c` 分别为方程的系数,`discriminant` 为判别式,`root1` 和 `root2` 分别为方程的两个实根。如果判别式大于 0,则方程有两个实根;如果判别式等于 0,则方程有一个实根;如果判别式小于 0,则方程无实根。
### 回答2:
下面是求解一元二次方程的C语言代码:
```c
#include <stdio.h>
#include <math.h>
void solveQuadraticEquation(float a, float b, float c) {
float discriminant, root1, root2;
discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
root1 = (-b + sqrt(discriminant)) / (2 * a);
root2 = (-b - sqrt(discriminant)) / (2 * a);
printf("方程有两个实根:root1 = %.2f, root2 = %.2f\n", root1, root2);
} else if (discriminant == 0) {
root1 = root2 = -b / (2 * a);
printf("方程有一个实根:root = %.2f\n", root1);
} else {
float realPart = -b / (2 * a);
float imaginaryPart = sqrt(-discriminant) / (2 * a);
printf("方程有两个虚根:root1 = %.2f + %.2fi, root2 = %.2f - %.2fi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
}
int main() {
float a, b, c;
printf("请输入一元二次方程的三个系数:\n");
printf("a = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &c);
solveQuadraticEquation(a, b, c);
return 0;
}
```
这段代码中,solveQuadraticEquation函数用于解一元二次方程,并根据判别式的值确定方程的根的情况。在主函数main中,先接收用户输入的三个系数a、b和c,然后调用solveQuadraticEquation函数求解方程。最后输出方程的根。
### 回答3:
下面是一个用C语言编写的求解一元二次方程的代码:
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c;
float delta, x1, x2;
printf("输入二次方程的系数:\n");
printf("a = ");
scanf("%f", &a);
printf("b = ");
scanf("%f", &b);
printf("c = ");
scanf("%f", &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 {
float realPart = -b / (2 * a);
float imaginaryPart = sqrt(-delta) / (2 * a);
printf("方程有两个虚根:x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
return 0;
}
```
这个程序首先要求输入一元二次方程的系数a、b和c,然后通过计算判断方程的解的情况。当delta大于0时,方程有两个不同的实根;当delta等于0时,方程有两个相同的实根;当delta小于0时,方程有两个虚根。最后打印出相应的解。
阅读全文