/*Sviluppare una function C che,
dato come parametro di input un
array di tipo struct punto {double x; double y; }e il suo size,
determina e restituisce come parametri di output
gli indici dei due punti che hanno distanza minima tra loro.
I campi x e y contengono l’ascissa e l’ordinata, rispettivamente, di un punto.*/
/*Sviluppare una function C che,
dato come parametro di input un
array di tipo struct punto {double x; double y; }e il suo size,
determina e restituisce come parametri di output
gli indici dei due punti che hanno distanza minima tra loro.
I campi x e y contengono l’ascissa e l’ordinata, rispettivamente, di un punto.*/
#include <stdio.h>
#include <math.h>
#define DIM 100
typedef struct
{
double x;
double y;
}Punto;
int distanzaF( Punto, Punto);
main(){
int i,A,dim;
Punto p1,p2;
Punto vettore[DIM];
/* QUANTI NUMERI VUOI USARE DI DIM*/
printf("\ninserire la dimensione dell'array: ");
scanf("%d",&dim);
/* inseriamo i numeri*/
for (i=0;i<dim;i++){
printf("inserire la 1 coppia: ");
scanf("%d",&vettore[i].x);
scanf("%d",&vettore[i].y);
printf("inserire la seconda coppia: ");
scanf("%d",&p2.x);
scanf("%d",&p2.y);}
/* VEDIAMO COSA HAI SALVATO */
printf("\np1.x=%d \np1.y=%d\np2.x=%d\np2.y=%d",p1.x,p1.y,p2.x,p2.y);
/* RICHIAMO LA FUNCTION E ME LA STAMPO*/
a=distanzaF(p1,p2);
printf("la distanza=%d", a);
}
/* MI SCRIVO LA FUNZIONE DELLA FUNCTION*/
int distanzaF( Punto p1,Punto p2)
{
return sqrt(pow((p2.x-p1.x),2) + pow((p2.y-p1.y),2));
}
perchè non riesco a memorizzare nel vettore x1= il valore desiderato?
mi assegna numeri grande ed esagerati di consegenza non funge