#include <stdio.h>

typedef struct { int x,y;}Tacka; /* definisanje tipa Tacka */

/* obrazovanje tacke od zadatih koordinata: */

Tacka napravi_tacku(int x, int y)

  {

     Tacka t;

     t.x = x;

     t.y = y;

     return t;

  }

 const Tacka NULA = { 0 , 0 }; /* koordinatni pocetak - tacka */


#include <math.h>


/* rastojanje izmedju dve tacke */

double rastojanje(Tacka g, Tacka h) {

  return sqrt( pow(g.x-h.x,2) + pow(g.y-h.y,2));

 }


/* potraga za tackom koja je najbliza koordinatnom pocetku */

Tacka *najbliza( const Tacka a[], int n)

{

   int i;

   double s, r=rastojanje(a[0], NULA);

  Tacka *min = a;

  for(i=1; i<n; i++)

     {

          s=rastojanje(a[i], NULA);

          if(s<r) { r=s; min = a+i; }

     }

          return min;

}


/* glavna funkcija:  */

int main(void)

{

int i, n;

Tacka NizTacki[50], tackaT;

int x, y;

printf("\n Unesi broj tacki: ");

scanf("%d", &n);

for(i=0; i<n; i++)

  {

     printf("\n za tacku [ %d ] x = ", i); scanf("%d", &x);

     printf("  ... y = "); scanf("%d", &y);

     NizTacki[i] = napravi_tacku(x,y);

  }

tackaT = *najbliza(NizTacki, n);


/* prikaz resenja */

printf("\n **** Tacka najbliza koordinatnom pocetku je (%d, %d)", tackaT.x, tackaT.y);


return 0;

}

Last modified: Tuesday, 14 May 2019, 1:12 PM