Salve ragazzi avrei un esercizio da fare, la traccia è :
Distanze tra punti.
Siano dati due array x ed y di lunghezza n contenenti le informazioni relative a dei punti in uno spazio bidimensionale. Implementare una funzione che determina se i due array sono simili. I due array sono simili se la somma totale della distanza euclidea tra i punti è minore di una soglia scelta dall’utente.
Gli array vengono inizializzati casualmente con valori float nell’intervallo [-100,100].
Io ho già scritto il 90% o almeno credo
codice:
# include<stdio.h>
# include<stdlib.h> /* per usare rand() e srand()*/
# include<time.h> /* per usare time() */
# include<math.h>
int main ()
{
int n;
printf("inserire un numero pari alla lunghezza dei due array");
scanf("%d",& n);
float x[n];
float y[n];
float dist=0,soglia,sum_dist=0;
int j,i,logic;
srand ( time (NULL));
for (i =1; i <= n ; i ++)
{
x[i] =-100+(200)*(float)rand()/(float)RAND_MAX; //
printf ("x[%d]=%f " ,i ,x[i]); //
} //
for (j =1; j <= n ; j ++) // inizializzazione casuale dei due array
{ //
y[j] =-100+(200)*(float)rand()/(float)RAND_MAX; //
printf("y[%d]=%f " ,j ,y[j]); //
}
printf("scegliere un numero float come soglia");
scanf("%f",& soglia);
i=1;
j=1;
while(i<=n-1 & j<=n-1) // utilizzo un ciclo while per il calcolo del totale delle distanze euclidee
{
dist=sqrt(pow(x[i+1]-x[i],2)+pow(y[j+1]-y[j],2) ) ;
sum_dist=sum_dist + dist;
dist=0;
i=i+1;
j=j+1;
}
printf("la somma della distanza euclidea e' %f",sum_dist);
}
logic= int somiglianza_array;
if (logic=1)
printf("I due array sono simili");
else
printf("I due array non sono simili");
}
int somiglianza_array(float soglia ,float sum_dist)// function che confront la somma delle distanze con la soglia e ha come output un valore logico
{
int risultato;
if (sum_dist < soglia)
risultato=1;
else
risultato=0;
return risultato;
}
Mi continua a segnalare errore è da poco che studio informatica quindi abbiate pazienza, penso di aver sbagliato qualcosa con il richiamo della function ma proprio non riesco a venirne a capo , sintatticamente mi sembra tutto corretto...