用c语言从键盘任意输入a,b,c的值,编程计算并输出一元二次方程ax2+bx+c=0的根(较小的先输出)。根据一元二次方程的求根公式,令 p=−b2a,q=b2−4ac√2a 假设a,b,c的值能保证方程有两个不相等的实根(即b2-4ac>0) **输入提示信息:"Please enter the coefficients a,b,c:" **输入格式要求:"%f,%f,%f" **输出格式要求: "x1=%7.4f, x2=%7.4f\n" 程序运行示例: Please enter the coefficients a,b,c:1,4,2 x1=-3.4142, x2=-0.5858
时间: 2024-03-17 18:47:42 浏览: 46
好的,下面是 C 语言的代码实现:
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, p, q, x1, x2;
printf("Please enter the coefficients a,b,c:");
scanf("%f,%f,%f", &a, &b, &c);
p = -b / (2 * a);
q = sqrt(b * b - 4 * a * c) / (2 * a);
x1 = p - q;
x2 = p + q;
printf("x1=%7.4f, x2=%7.4f\n", x1, x2);
return 0;
}
```
程序说明:
1. 首先从键盘输入 a、b、c 的值;
2. 根据一元二次方程求根公式计算出 x1、x2 的值;
3. 输出 x1、x2 的值,注意格式要求。
相关问题
求一元二次方程ax^2+bx+c=0的根。C语言
可以使用公式:delta=b^2-4ac,根据 delta 的正负可以得出方程根的情况。
当 delta 大于 0 时,方程有两个不相等的实数根,分别是 (-b+sqrt(delta))/(2a) 和 (-b-sqrt(delta))/(2a);
当 delta 等于 0 时,方程有一个重根,即 -b/(2a);
当 delta 小于 0 时,方程无实数根,可以考虑输出复数根。
需要注意的是,在计算中要先进行开根号等基本操作,尽量避免出现精度误差。
用c语言输出一元二次方程ax2+bx+c=0的根.
```c
#include <stdio.h>
#include <math.h>
int main() {
float a, b, c, delta, x1, x2;
printf("请输入一元二次方程的系数a、b、c:");
scanf("%f %f %f", &a, &b, &c);
delta = b * b - 4 * a * c;
if (delta > 0) {
x1 = (-b + sqrt(delta)) / (2 * a);
x2 = (-b - sqrt(delta)) / (2 * a);
printf("方程的两个实根为:x1=%.2f,x2=%.2f\n", x1, x2);
} else if (delta == 0) {
x1 = x2 = -b / (2 * a);
printf("方程有两个相等的实根:x1=x2=%.2f\n", x1);
} else {
printf("方程无实根\n");
}
return 0;
}
```
输入格式:a b c,用空格分隔。
输出格式:如果方程有两个实根,输出“方程的两个实根为:x1=xx,x2=xx”,保留两位小数;如果方程有两个相等的实根,输出“方程有两个相等的实根:x1=x2=xx”,保留两位小数;如果方程无实根,输出“方程无实根”。
阅读全文