用c语言求一元二次方程共轭复根
时间: 2024-12-19 15:19:19 浏览: 3
在C语言中,计算一元二次方程的共轭复数根通常涉及解一个标准形式的二次方程ax^2 + bx + c = 0,其中a、b、c是实数且a不等于0。当判别式D = b^2 - 4ac小于0时,方程有两个共轭虚数根。以下是一个简单的步骤:
1. 计算判别式D = b^2 - 4ac。
2. 根据公式,如果D < 0,那么两个根为:
z1 = (-b + sqrt(-D)) / (2a)
z2 = (-b - sqrt(-D)) / (2a)
这里sqrt表示平方根函数,对于负数结果我们通常使用`cbrt`(立方根)来得到虚部的绝对值,然后乘以-i(i是虚数单位)。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <math.h>
void complex_roots(double a, double b, double c) {
double discriminant = b * b - 4 * a * c;
if (discriminant < 0) {
double real_part = -b / (2 * a);
double imaginary_part = sqrt(-discriminant) / (2 * a);
printf("共轭复根为: %.2f + %.2fi 和 %.2f - %.2fi\n", real_part, imaginary_part, real_part, imaginary_part);
} else {
printf("实数根为: %.2f 和 %.2f\n", -b / (2 * a), 0);
}
}
int main() {
double a, b, c;
// 输入方程系数
printf("请输入二次方程的系数(a, b, c): ");
scanf("%lf %lf %lf", &a, &b, &c);
complex_roots(a, b, c);
return 0;
}
```
阅读全文