用c语言从主函数中输入ax2+bx+c=0的a、b、c参数,用函数求出当b2-4ac大于等于0时的实数根,并输出结果。
时间: 2023-06-15 19:06:37 浏览: 37
可以使用以下代码实现:
```c
#include <stdio.h>
#include <math.h>
// 函数声明
void solve_equation(double a, double b, double c);
int main() {
double a, b, c;
// 从用户输入获取a, b, c的值
printf("请输入方程的系数:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
// 调用函数求解方程
solve_equation(a, b, c);
return 0;
}
// 求解一元二次方程的函数
void solve_equation(double a, double b, double c) {
double delta = b * b - 4 * a * c; // 计算判别式
if (delta >= 0) { // 判别式大于等于0,有实数根
double x1 = (-b + sqrt(delta)) / (2 * a);
double x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的实数根为:x1 = %lf, x2 = %lf\n", x1, x2);
} else { // 判别式小于0,无实数根
printf("方程无实数根!\n");
}
}
```
输入样例:
```
请输入方程的系数:
a = 1
b = -3
c = 2
```
输出样例:
```
方程的实数根为:x1 = 2.000000, x2 = 1.000000
```