用C语言指针与函数计算一元二次方程
时间: 2024-05-01 14:18:17 浏览: 77
c语言求解一元二次方程
5星 · 资源好评率100%
好的,我明白了。下面是用C语言指针与函数计算一元二次方程的方法:
```c
#include <stdio.h>
#include <math.h>
void calculate(float a, float b, float c, float *x1, float *x2) {
float delta = b * b - 4 * a * c;
if (delta > 0) {
*x1 = (-b + sqrt(delta)) / (2 * a);
*x2 = (-b - sqrt(delta)) / (2 * a);
} else if (delta == 0) {
*x1 = *x2 = -b / (2 * a);
} else {
printf("No real solution.\n");
*x1 = *x2 = NAN;
}
}
int main() {
float a, b, c, x1, x2;
printf("Enter a, b, c for quadratic equation ax^2 + bx + c = 0:\n");
scanf("%f %f %f", &a, &b, &c);
calculate(a, b, c, &x1, &x2);
printf("Solutions: x1 = %f, x2 = %f\n", x1, x2);
return 0;
}
```
在这段代码中,我们定义了一个 `calculate()` 函数来计算一元二次方程的解。函数需要四个参数:`a`、`b` 和 `c` 是一次项系数、二次项系数和常数项,`x1` 和 `x2` 是输出参数,存放计算出来的两个解。
首先计算出判别式 `delta`,然后根据其值来分别计算两个解或者直接计算出一个解,最后如果没有实数解则输出一行错误信息。
在主函数中,我们读取用户输入,调用 `calculate()` 函数并输出结果。注意传递 `x1` 和 `x2` 的地址,因为函数需要修改它们的值。
希望这个例子能够帮助到你,如果还有其他问题,可以继续问我。
阅读全文