1028: C语言程序设计教程(第三版)课后习题8.2

时间:2022-05-28 18:21:43
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)==)
{
double x1,x2;
double t1,t2;
char s1='+',s2='-';
if((b*b-*a*c)<)
{ t1=-b/(*a);
t2=sqrt(*a*c-b*b)/(*a); //复数部分
printf("x1=%.3lf%c%.3lfi ",t1,s1,t2);
printf("x2=%.3lf%c%.3lfi\n",t1,s2,t2);
} else if((b*b-*a*c)>=)
{
t1=-b*1.0/(*a);
t2=sqrt(b*b-*a*c)/(*a);;
printf("x1=%.3lf%c%.3lf ",t1,s1,t2);
printf("x2=%.3lf%c%.3lf\n",t1,s2,t2);
}
}
return ;
}