c语言一元二次方程求根
时间: 2023-12-21 20:30:45 浏览: 141
以下是C语言求解一元二次方程的代码实现:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数a、b、c:\n");
scanf("%lf%lf%lf", &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 = %lf, x2 = %lf\n", x1, x2);
}
else if (delta == 0)
{
x1 = x2 = -b / (2 * a);
printf("方程的两个实数根相等:x1 = x2 = %lf\n", x1);
}
else
{
printf("方程无实数根!\n");
}
return 0;
}
```
相关问题
c语言一元二次方程求根程序
以下是 C 语言实现一元二次方程求根的程序:
```c
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, discriminant, root1, root2, realPart, imaginaryPart;
printf("请输入一元二次方程的系数:\n");
scanf("%f %f %f", &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("方程有两个不同的实根:root1 = %.2f 和 root2 = %.2f\n", root1, root2);
}
else if (discriminant == 0)
{
root1 = root2 = -b / (2*a);
printf("方程有两个相等的实根:root1 = root2 = %.2f\n", root1);
}
else
{
realPart = -b / (2*a);
imaginaryPart = sqrt(-discriminant) / (2*a);
printf("方程有两个共轭复根:root1 = %.2f + %.2fi 和 root2 = %.2f - %.2fi\n", realPart, imaginaryPart, realPart, imaginaryPart);
}
return 0;
}
```
输入各项系数后,程序会计算方程的判别式,然后根据判别式的值输出方程的根。如果判别式大于0,则方程有两个不同的实根;如果判别式等于0,则方程有两个相等的实根;如果判别式小于0,则方程有两个共轭复根。
C语言一元二次方程求根。请编程计算一元二次方程ax²+bx+c=0的根,a、b、c的值由用户从键盘输入,其中a≠0
在C语言中,我们可以使用数学库函数`sqrt()`来计算平方根,并结合公式来求解一元二次方程的根。这里是一个简单的程序示例:
```c
#include <stdio.h>
#include <math.h> // 包含数学运算头文件
// 定义函数求解一元二次方程的两个根
void quadraticRoots(double a, double b, double c) {
double delta = b * b - 4 * a * c; // 计算判别式
if (delta > 0) { // 实数根
double root1 = (-b + sqrt(delta)) / (2 * a);
double root2 = (-b - sqrt(delta)) / (2 * a);
printf("一元二次方程有两个实根:%.2lf 和 %.2lf\n", root1, root2);
} else if (delta == 0) { // 双重根
double root = -b / (2 * a);
printf("一元二次方程有一个实根:%.2lf\n", root);
} else { // 复数根
double realPart = -b / (2 * a);
double imaginaryPart = sqrt(-delta) / (2 * a);
printf("一元二次方程无实根,有复数根:%.2lf + %.2lfi\n", realPart, imaginaryPart);
}
}
int main() {
double a, b, c;
printf("请输入一元二次方程的系数a, b, c:\na = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
// 检查a是否为0,因为a=0不是一元二次方程
if (a != 0) {
quadraticRoots(a, b, c);
} else {
printf("错误:a不能为0,这不构成一个一元二次方程。\n");
}
return 0;
}
```
在这个程序中,首先获取用户输入的一元二次方程的系数a、b和c,然后检查a是否为零。如果a非零,则调用`quadraticRoots`函数计算并打印根。如果a为零,程序会显示错误信息。
阅读全文