1028: C语言程序设计教程(第三版)课后习题8.2
Description
求方程 的根,用三个函数分别求当b^2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。
Input
a b c
Output
x1=? x2=?
Sample Input
4 1 1
Sample Output
x1=-0.125+0.484i x2=-0.125-0.484i
思路:注意当b*b-4*a*c<0时,应该是sqrt(4*a*c-b*b),并且复数加上i
#include<stdio.h> #include<math.h> int main() { double a,b,c; while (scanf("%lf%lf%lf",&a,&b,&c)==3) { double x1,x2; double t1,t2; char s1='+',s2='-'; if((b*b-4*a*c)<0) { t1=-b/(2*a); t2=sqrt(4*a*c-b*b)/(2*a); //复数部分 printf("x1=%.3lf%c%.3lfi ",t1,s1,t2); printf("x2=%.3lf%c%.3lfi\n",t1,s2,t2); } else if((b*b-4*a*c)>=0) { t1=-b*1.0/(2*a); t2=sqrt(b*b-4*a*c)/(2*a);; printf("x1=%.3lf%c%.3lf ",t1,s1,t2); printf("x2=%.3lf%c%.3lf\n",t1,s2,t2); } } return 0; }