第一种:只考虑实数情况
ax²+bx+c=0;
在有解的情况下(b²-4ac>=0)
直接用求根公式:((-b)+根号下(b²-4ac))/2a 和 ((-b)+根号下(b²-4ac))/2a
第二种:考虑所有解(虚数)
在实数集无解的情况下(b²-4ac<0)
对于该情况求根公式为:-b/(2a)+(根号下(4ac-b²)/(2a))*i 和 -b/(2a)+(根号下(4ac-b²)/(2a))*i
代码所示:
#include<stdio.h>
#include<math.h>
int main()
{
double a, b, c;
scanf("%lf%lf%lf", &a, &b, &c);
if (b * b - 4 * a * c >= 0)
{
printf("%.2lf %.2lf\n", ((-b) + sqrt(b * b - 4 * a * c)) / (2 * a), ((-b) - sqrt(b * b - 4 * a * c)) / (2 * a));
}
else
{
printf("%.2lf + %.2lfi %.2lf - %.2lfi\n",-b/2/a, ( sqrt( 4 * a * c-b * b)) / (2 * a),-b/2/a, ( sqrt(4 * a * c - b * b)) / (2 * a));
}
return 0;
}