写了一个求二次函数的根的C语言程序,运行之后出现一大堆相同的答案,是怎么回事?

、、、
#include
#include
int main()
{
double a,b,c, d,e,f,x1,x2;
printf("a:\nb:\nc:\n");
scanf("%lf%lf%lf",&a,&b,&c);
f=b*b-4*a*c;

while(f>=0)
{
    d=-b/(2.0*a),e=sqrt(f)/(2.0*a);
      x1=d+e,x2=d-e;
      printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);
}

while(f<0)
{

    printf("No real roots");
    }

getch();
return 0;

}

![图片说明](https://img-ask.csdn.net/upload/201710/10/1507598010_357556.png)

不是while 是if .。。。。。自己无限循环啊。。。。。

#include
#include
这里都没写全,不报错的吗

while 循环为死循环

while 循环为死循环

while 死循环了