编写程序求一元二次方程的复数根,可以使用不同的编程语言和方法。以下是几种常见编程语言的示例代码:
Python 示例代码
```python
import cmath
从键盘输入一元二次方程的系数
a = float(input("Enter the coefficient for x^2: "))
b = float(input("Enter the coefficient for x: "))
c = float(input("Enter the constant: "))
计算判别式
delta = b2 - 4*a*c
根据判别式的值计算根
if delta > 0:
x1 = (-b + cmath.sqrt(delta)) / (2*a)
x2 = (-b - cmath.sqrt(delta)) / (2*a)
print(f"Roots are: x1 = {x1.real:.2f} + {x1.imag:.2f}i, x2 = {x2.real:.2f} + {x2.imag:.2f}i")
elif delta == 0:
x1 = -b / (2*a)
print(f"Roots are: x1 = x2 = {x1.real:.2f}")
else:
real_part = -b / (2*a)
imaginary_part = cmath.sqrt(-delta) / (2*a)
print(f"Roots are: x1 = {real_part:.2f} + {imaginary_part.real:.2f}i, x2 = {real_part:.2f} - {imaginary_part.real:.2f}i")
```
C 示例代码
```c
include include include int main() { double a, b, c, d, real, image; printf("Enter the coefficient for x^2: "); scanf("%lf", &a); printf("Enter the coefficient for x: "); scanf("%lf", &b); printf("Enter the constant: "); scanf("%lf", &c); d = pow(b, 2) - 4*a*c; if (d > 0) { x1 = (-b + sqrt(d)) / (2*a); x2 = (-b - sqrt(d)) / (2*a); printf("x1 = %.2lf, x2 = %.2lf\n", x1, x2); } else if (d == 0) { x1 = -b / (2*a); printf("x1 = x2 = %.2lf\n", x1); } else { real = -b / (2*a); image = sqrt(-d) / (2*a); printf("x1 = %.2lf + %.2lfi, x2 = %.2lf - %.2lfi\n", real, image, real, image); } return 0; } ``` R 示例代码 ```r 安装和加载 polyroot 包 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("polyroot") library(polyroot) 从键盘输入一元二次方程的系数 a <- as.numeric(readline(prompt = "Enter the coefficient for x^2: ")) b <- as.numeric(readline(prompt = "Enter the coefficient for x: ")) c <- as.numeric(readline(prompt = "Enter the constant: ")) 计算多项式的根 coefficients <- c(a, b, c) roots <- polyroot(coefficients) 输出复数根 print(paste("Roots are:", paste(roots, collapse = ", "))) ``` 这些示例代码分别展示了如何在 Python、C 和 R 中编写程序来计算一元二次方程的复数根。你可以根据自己的需求和熟悉程度选择合适的编程语言进行实现。