c语言一元二次方程求纯虚数
时间: 2023-05-29 09:01:19 浏览: 121
jiefangcheng.rar_一元二次方程
以下是求解一元二次方程的C程序,考虑纯虚数的情况:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double a, b, c; // 二次方程的三个系数
double delta; // 二次方程的判别式
double x1_re, x2_re, x3_re; // 三个实数解的实部
double x1_im, x2_im, x3_im; // 三个复数解的虚部(纯虚数)
// 读取三个系数
printf("请输入二次方程的三个系数:");
scanf("%lf %lf %lf", &a, &b, &c);
// 计算判别式
delta = b * b - 4 * a * c;
// 根据判别式的符号确定解的类型
if (delta > 0) {
// 有两个不相等的实数解
x1_re = (-b + sqrt(delta)) / (2 * a);
x2_re = (-b - sqrt(delta)) / (2 * a);
printf("该方程有两个实数解:x1 = %.2f, x2 = %.2f\n", x1_re, x2_re);
} else if (delta == 0) {
// 有一个重根的实数解
x1_re = -b / (2 * a);
printf("该方程有一个实数重根:x1 = %.2f\n", x1_re);
} else {
// 有两个共轭的复数解
x1_re = -b / (2 * a);
x1_im = sqrt(-delta) / (2 * a);
x2_re = x1_re;
x2_im = -x1_im;
printf("该方程有两个共轭复数解:x1 = %.2f + %.2fi, x2 = %.2f - %.2fi\n", x1_re, x1_im, x2_re, x2_im);
}
return 0;
}
```
以上程序中,计算纯虚数的部分为:
```c
x1_re = -b / (2 * a); // 实部为解析式的实部
x1_im = sqrt(-delta) / (2 * a); // 虚部为解析式的虚部
x2_re = x1_re; // 第二个解的实部和第一个相同
x2_im = -x1_im; // 第二个解的虚部为第一个相反数
```
注意,求平方根要用到`sqrt()`函数,在进行复数运算时需要使用头文件`<math.h>`。
阅读全文