/*
 * =====================================================================================
 *
 *       Filename:  uklad.c
 *    Description:  Uklad 2 rownan liniowych.
 *        Created:  10.12.2013 13:11:53
 *         Author:  Marek Grochowski 
 *
 * =====================================================================================
 */

#include <stdio.h>
#include <math.h>
#define EPS 0.000001

int uklad(float a, float b, float c, float d, float e, float f, float *wx, float *wy)
{
   float w;
  
   w = a*e-b*d;
   if( fabs(w) < EPS ) 
   {
      if( fabs(c*e - f*b) <  EPS && fabs(d*c - f*a) < EPS) return 0;
      else return -1;
   }
   *wx = (c*e - f*b)/w;
   *wy = (f*a - d*c)/w;

   return 1;
}


int main()
{
   float a,b,c,d,e,f,x,y;
   int k;

   printf("Podaj wspolczynniki ukladu rownan\nax + by = c\ndx + ey = f\n");
   printf("a= "); scanf("%f",&a);
   printf("b= "); scanf("%f",&b);
   printf("c= "); scanf("%f",&c);
   printf("d= "); scanf("%f",&d);
   printf("e= "); scanf("%f",&e);
   printf("f= "); scanf("%f",&f);

   k=uklad (a,b,c,d,e,f, &x, &y);

   if(k == 1) printf("Uklad posiada rozwiazanie\nx=%f y=%f\n",x,y);
   else if(k == 0) printf("Uklad nie posiada jednego rozwiazania\n");
   else printf("Uklad jest sprzeczny\n");

   return 0;
}
