C语言使用函数求ax∧2+bx+c方程,在b∧2- 4ac大于0时的根并输出结果
时间: 2024-12-13 19:14:56 浏览: 5
基于freeRTOS和STM32F103x的手机远程控制浴室温度系统设计源码
在C语言中,要计算一元二次方程ax^2 + bx + c的解,当判别式b² - 4ac大于0时(即有两个实数根),可以使用牛顿迭代法或者直接求根公式。这里我们采用求根公式来实现,因为它的计算过程更为直接。
首先,需要编写一个函数来计算根,假设这个函数名为`quadraticRoots(float a, float b, float c)`:
```c
#include <stdio.h>
#include <math.h>
// 函数声明
void quadraticRoots(float a, float b, float c, float *result);
int main() {
float a = 1.0, b = 5.0, c = 6.0; // 输入的系数
float root1, root2;
// 检查判别式
float discriminant = b * b - 4 * a * c;
if (discriminant > 0) {
quadraticRoots(a, b, c, &root1); // 计算第一个根并存储
quadraticRoots(a, b, c, &root2); // 计算第二个根并存储
printf("一元二次方程 ax^2 + bx + c 的两个实根为:\n");
printf("根1: %.2f\n", root1);
printf("根2: %.2f\n", root2);
} else {
printf("方程无实数根。\n");
}
return 0;
}
// 定义计算根的函数
void quadraticRoots(float a, float b, float c, float *result) {
*result = (-b + sqrt(b * b - 4 * a * c)) / (2 * a);
}
```
在这个程序中,我们首先检查判别式的值,然后如果它大于0,就分别计算两个根,并通过指针将结果传递给`quadraticRoots`函数。最后在主函数中输出结果。
阅读全文