#include <math.h>
#include <stdio.h>


/* funkcja oblicza miejsca zerowe rownania kwadratowego postaci a*x^2+b*x+c=0.
   Funkcja zwraca liczbe miejsc zerowych (0, 1 lub 2).
   Wartosci miejsc zerowych wstawiane sa do zmiennych pod adresem x1,x2
    */
int pierwiastki (float a, float b, float c,float *x1,float *x2)
{
	float d;
	d=b*b-4*a*c;
	if (d<0 || (a==0 && b==0)) 
   {
      return 0;
   }

   if (a==0) 
   {
      *x1=*x2=-c/b;
      return 1;
   }

   a=2*a;
   *x1=*x2=-b/a;

	if (d==0)  return 1;

	*x1-=sqrt(d)/a;
	*x2+=sqrt(d)/a;

   return 2;
}


int main()
{
   float a,b,c;
   int i;
   float x1,x2;
   
   printf("Podaj wspolczynniki rownania kwadratowego\n");
   printf("a= ");    scanf("%f",&a);
   printf("b= ");    scanf("%f",&b);
   printf("c= ");    scanf("%f",&c);
   
   i= pierwiastki(a,b,c,&x1,&x2);

   printf("Rownanie postaci f(x)= %.2f x^2 %+.2f x  %+.2f\n",a,b,c);
   if(!i) printf("nie posiada miejsc zerowych.\n");
   else if(i==1) printf("posiada jedno miejsce zerowe dla x=%f.\n",x1);
   else printf("posiada dwa miejsca zerowe x1=%f, x2=%f.\n",x1,x2);
   
   return 0;
}


