///////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
// https://www.its.edu.rs/
// Predmet: Osnovi Programiranja – Programski jezik C
//
// Primer: Odredjivanje uglova trougla,
//           ako su zadate koordinate njegovih temena
///////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <math.h>
#define PI 3.141592
main()
{
  double xa, ya, xb, yb, xc, yc, a, b, c, alfa, beta, gama;
  int izraz =0;
  printf("Unesite koordinate tacke A(x,y): ");
  scanf("%lf%lf",&xa,&ya);
  printf("Unesite koordinate tacke B(x,y): ");
  scanf("%lf%lf",&xb,&yb);
  printf("Unesite koordinate tacke C(x,y): ");
  scanf("%lf%lf",&xc,&yc);
  // izracunavanje stranica
  a = sqrt(pow(xb-xc,2) + pow(yb-yc,2));
  b = sqrt(pow(xa-xc,2) + pow(ya-yc,2));
  c = sqrt(pow(xa-xb,2) + pow(ya-yb,2));
  printf("Stranica a je: %f
", a);
  printf("Stranica b je: %f
", b);
  printf("Stranica c je: %f
", c);
  // vrednost 0 se tumaci kao FALSE, a bilo koja nenulta vrednost kao TRUE
  izraz = (a>=(b+c)) || (b >= (a+c)) || (c>=(a+b));
  if(izraz == 0)
  {
    alfa = acos( (b*b+c*c-a*a) / (2*b*c) );
    beta = acos( (c*c+a*a-b*b) / (2*c*a) );
    gama = acos( (a*a+b*b-c*c) / (2*a*b) );
    alfa *= 180/PI;
    beta *= 180/PI;
    gama *= 180/PI;
    printf("Alfa = %.2f
Beta = %.2f
Gama = %.2f
",alfa,beta,gama);
  }
  else
  printf("Ne moze se kreirati trougao
");
}