例4.12求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0。
众所周知,一元二次方程式的根为
x1=-b+b2-4ac2ax2=-b-b2-4ac2a
可以将上面的分式分为两项:
p=-b2a,q=b2-4ac2a
x1=p+q,x2=p-q
据此编写程序如下:
#include <math.h>
main();

 float a,b,c,disc,x1,x2,p,q;
  scanf("a=%f,b=%f,c=%f",&a,&b,&c);
  disc=b*b-4*a*c;
  p=-b/(2*a); 
q=sqrt(disc)/(2*a);
x1=p+q; x2=p-q;
  printf("\n\nx1=%5.2f\nx2=%5.2f\n",x1,x2);

运行情况如下:
a=1,b=3,c=2
x1=-1.00
x2=-2.00
注意程序中用了预处理命令#include <math.h>。