//问题:求ax²+bx+c=0方程的根,a、b、c由键盘输入,设b²-4ac>0;
//思路先想到数学公式x1=-b+根号b²-4ac/2a,x2=-b-根号b²-4ac/2a;
//再讲上面的分式分成两项p=-b/2a,q=根号b²-4ac/2a;
//得到x1=p+q,x2=p-q;
#include <stdio.h>
#include <math.h> //其中要用到根号函数sqrt;
int main()
{
double a, b, c, disc, x1, x2, p, q; //定义变量,其中disc是判别式sqrt(pow(b,2)-4ac);
scanf("a=%lf,b=%lf,c=%lf", &a, &b, &c); //输入双精度要用%lf,注意输入的格式是a=?,b=?,c=?;
disc = pow(b, 2) - 4 * a * c;
p = -b / 2 * a;
q = sqrt(disc) / 2 * a;
x1 = p + q;
x2 = p - q;
printf("x1=%5.2f\nx2=%5.2f\n", x1, x2); //%5.2f,5代表输出数长,2代表小数点后的数长.
return 0;
}
运行结果:
程序分析:由注释可知!!!