c语言用指针求解一元二次方程实根
时间: 2023-12-30 08:04:26 浏览: 48
以下是使用指针求解一元二次方程实根的C语言代码:
```c
#include <stdio.h>
#include <math.h>
void solve_quadratic(double a, double b, double c, double *root1, double *root2);
int main() {
double a, b, c, root1, root2;
printf("Enter coefficients a, b, c: ");
scanf("%lf %lf %lf", &a, &b, &c);
solve_quadratic(a, b, c, &root1, &root2);
printf("Root 1: %.2f\n", root1);
printf("Root 2: %.2f\n", root2);
return 0;
}
void solve_quadratic(double a, double b, double c, double *root1, double *root2) {
double discriminant = b * b - 4 * a * c;
if (discriminant < 0) {
printf("No real roots!");
return;
}
*root1 = (-b + sqrt(discriminant)) / (2 * a);
*root2 = (-b - sqrt(discriminant)) / (2 * a);
}
```
在 `solve_quadratic` 函数中,我们使用了两个指针 `root1` 和 `root2` 来保存两个实根的值。在函数中,我们通过修改指针所指向的内存地址来修改 `root1` 和 `root2` 的值。在 `main` 函数中,我们通过传递 `&root1` 和 `&root2` 来将指向 `root1` 和 `root2` 的指针传递给 `solve_quadratic` 函数。