c语言题目要求解得ax2+bx+c=0方程的根。由键盘输入a,b,c。假设a,b,c的值任意,并不保证b2-4ac≥0。需要在程序中进行判别,如果b2-4ac≥0,就计算并输出方程的两个实根,如果b2-4ac<0,就输出“此方程无实根”的信息。
时间: 2024-10-16 08:05:51 浏览: 41
在C语言中,你可以使用`sqrt`函数和`fabs`函数来解决这个方程求根的问题。这里是一个简单的步骤描述:
1. 首先,从键盘读取用户输入的a、b和c的值,通常通过`scanf`函数完成。
```c
double a, b, c;
scanf("%lf %lf %lf", &a, &b, &c);
```
2. 计算判别式`delta = b * b - 4 * a * c`。
3. 判断判别式的符号:
- 如果`delta >= 0`,说明方程有实根,可以进一步计算根:
```c
double sqrt_delta = sqrt(fabs(delta)); // 取绝对值避免负数开平方
double root1 = (-b + sqrt_delta) / (2 * a);
double root2 = (-b - sqrt_delta) / (2 * a);
```
4. 输出结果:
- 如果`delta > 0`,则有两个不同的实根,打印它们;
- 如果`delta == 0`,则有两个相同的实根,打印一个;
- 否则,即`delta < 0`,打印"此方程无实根"。
```c
if (sqrt_delta != 0) {
printf("方程的两个实根是: %.2lf 和 %.2lf\n", root1, root2);
} else {
printf("方程的唯一实根是: %.2lf\n", root1);
}
if (delta < 0)
printf("此方程无实根\n");
```
阅读全文