codice:
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void riempi_vettore (float *v, int size);
void copia_funzione (float *a, float *x, float *y, int size);
int main (void) {
int n, dist_size,i;
float *a, *x, *y, soglia, *dista;
printf ("Inserisce da tastiera la dimensione del vettore \n");
scanf("%d", &n);
a=(float*)malloc(n*sizeof(float));
riempi_vettore ( a, n);
copia_funzione ( a, x, y, n);
printf (" Inserire un valore di soglia \n");
scanf ("%f", &soglia);
dist_size = crea_vettore ( x, y, n, dista, soglia);
for (i = 0; i < dist_size;i++)
printf ("dista[%d] = %f\n", i, dista[i]);
system("pause");
}
void riempi_vettore (float *v, int size){
int i;
for (i=0; i<size; i++) {
v[i]=(rand()%1500)+1;
printf (" stampa vettore v[%d]=%f \n", i, v[i]);
}
}
void copia_funzione ( float *a, float *x, float *y, int size){
int i,j;
for (i=0, j=0;i<size;j++, i++) {
x[j]=a[i];
y[j]=a[i+1];
printf (" Gli elementi dei vettori sono x[%d]=%f, y[%d]=%f \n", j,x[j], j, y[j]);
}
}
double distanza ( int x0, int y0, int x1, int y1){
return (sqrt((x0-x*1)*(x0-x1)+(y0-y1)*(y0-y1)));
}
float crea_vettore ( float *x, float *y, int size, float *dist, float soglia) {
int i, j;
float distance;
j=0;
for (i=0; i<size; i++) {
distance = distanza (x[i], y[i], x[i+1], y[i+1]);
if (distance < soglia) {
dist[j]=distance;
j++;
}
return j;
}
}
Il riempimento del vettor a[]con valori casuali ( attraverso la funzione riempi) va bene, tutto funziona.