Zadatak sa vezbi 14.05.2019
#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;
}