Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<math.h>
- struct Tacka{
- double koordinata[100];
- };
- double udaljenost(struct Tacka tacka1, struct Tacka tacka2, int dim){
- double udaljenost=0.;
- int i;
- for(i=0;i<dim;i++)
- udaljenost+=(tacka1.koordinata[i]-tacka2.koordinata[i])*(tacka1.koordinata[i]-tacka2.koordinata[i]);
- return sqrt(udaljenost);
- }
- int izbaci(struct Tacka *niz,int vel,int out){
- for(;out<vel-1;out++)
- niz[out]=niz[out+1];
- return (vel-1);
- }
- int izbaci_najblize(struct Tacka *niz, int vel, int dim){
- int i,prviPut=1;
- int tackaMin1=-1,tackaMin2=-1;
- double minUdaljenost;
- for(i=0;i<vel;i++){
- int j=i+1;
- for(;j<vel;j++){
- if(prviPut){
- tackaMin1=i;tackaMin2=j;
- minUdaljenost=udaljenost(niz[i],niz[j],dim);
- prviPut=0;
- }
- else if(!prviPut && minUdaljenost>udaljenost(niz[i],niz[j],dim)){
- tackaMin1=i;tackaMin2=j;
- minUdaljenost=udaljenost(niz[i],niz[j],dim);
- }
- }
- }
- if(tackaMin1!=-1 && tackaMin2!=-1)
- vel=izbaci(niz,izbaci(niz,vel,tackaMin2),tackaMin1);
- return vel;
- }
- int main(){
- struct Tacka niz[100] = {
- {{-2, -8, -3.5, -7.11}},
- {{1, -4.4, -9.01, -0.002}},
- {{-2, -2, -3.5, -7}},
- {{-10, -9.73, -9.01, -8.77}},
- {{-1, 0, -1, -10}}
- };
- int dimenzija = 4;
- int vel = izbaci_najblize(niz, 5, dimenzija);
- int i,j;
- for (i=0; i<vel; i++) {
- printf("(");
- for (j=0; j<dimenzija-1; j++)
- printf("%g,", niz[i].koordinata[j]);
- printf("%g)\n", niz[i].koordinata[dimenzija-1]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement