MinaVagante
18-03-2008, 18:20
ciao a tutti,
ho dichiarato le seguenti strutture
struct Punto
{ double X;
double Y;
double Z;
};
struct Triangolo
{ struct Punto vertice1;
struct Punto vertice2;
struct Punto vertice3;
};
perchè la funzione non viene compilata correttamente??
int funzione1(struct Triangolo vettore_triangoli[],int k)
{ int i,indice_area_minima;
double lato1,lato2,lato3,semiperimetro,area,area_minima;
for( i=0; i<k ; i++)
{ lato1=sqrt((pow(vettore_triangoli[i].vertice1.X - vettore_triangoli[i].vertice2.X, 2)) +
(pow(vettore_triangoli[i].vertice1.Y - vettore_triangoli[i].vertice2.Y, 2)) +
(pow(vettore_triangoli[i].vertice1.Z - vettore_triangoli[i].vertice2.Z, 2)));
lato2=sqrt((pow(vettore_triangoli[i].vertice1.X - vettore_triangoli[i].vertice3.X, 2)) +
(pow(vettore_triangoli[i].vertice1.Y - vettore_triangoli[i].vertice3.Y, 2)) +
(pow(vettore_triangoli[i].vertice1.Z - vettore_triangoli[i].vertice3.Z, 2)));
lato3=sqrt((pow(vettore_triangoli[i].vertice2.X - vettore_triangoli[i].vertice3.X, 2)) +
(pow(vettore_triangoli[i].vertice2.Y - vettore_triangoli[i].vertice3.Y, 2)) +
(pow(vettore_triangoli[i].vertice2.Z - vettore_triangoli[i].vertice3.Z, 2)));
semiperimetro = (lato1 + lato2 + lato3) / 2;
area = semiperimetro * (semiperimetro - lato1)
* (semiperimetro - lato2)
* (semiperimetro - lato3);
printf("Area:%lf\n",area);
if (i == 0)
{ indice_area_minima = i;
area_minima = area;
}
else
{ if(area_minima > area)
{ indice_area_minima = i;
area_minima=area;
}
}
}
return indice_area_minima;
}
praticamente ho un vettore di strutture passato alla funzione e restituire l'indice con area minima: lì dei pow mi dice
arithmetic on pointer to an incomplete type
grazie
ho dichiarato le seguenti strutture
struct Punto
{ double X;
double Y;
double Z;
};
struct Triangolo
{ struct Punto vertice1;
struct Punto vertice2;
struct Punto vertice3;
};
perchè la funzione non viene compilata correttamente??
int funzione1(struct Triangolo vettore_triangoli[],int k)
{ int i,indice_area_minima;
double lato1,lato2,lato3,semiperimetro,area,area_minima;
for( i=0; i<k ; i++)
{ lato1=sqrt((pow(vettore_triangoli[i].vertice1.X - vettore_triangoli[i].vertice2.X, 2)) +
(pow(vettore_triangoli[i].vertice1.Y - vettore_triangoli[i].vertice2.Y, 2)) +
(pow(vettore_triangoli[i].vertice1.Z - vettore_triangoli[i].vertice2.Z, 2)));
lato2=sqrt((pow(vettore_triangoli[i].vertice1.X - vettore_triangoli[i].vertice3.X, 2)) +
(pow(vettore_triangoli[i].vertice1.Y - vettore_triangoli[i].vertice3.Y, 2)) +
(pow(vettore_triangoli[i].vertice1.Z - vettore_triangoli[i].vertice3.Z, 2)));
lato3=sqrt((pow(vettore_triangoli[i].vertice2.X - vettore_triangoli[i].vertice3.X, 2)) +
(pow(vettore_triangoli[i].vertice2.Y - vettore_triangoli[i].vertice3.Y, 2)) +
(pow(vettore_triangoli[i].vertice2.Z - vettore_triangoli[i].vertice3.Z, 2)));
semiperimetro = (lato1 + lato2 + lato3) / 2;
area = semiperimetro * (semiperimetro - lato1)
* (semiperimetro - lato2)
* (semiperimetro - lato3);
printf("Area:%lf\n",area);
if (i == 0)
{ indice_area_minima = i;
area_minima = area;
}
else
{ if(area_minima > area)
{ indice_area_minima = i;
area_minima=area;
}
}
}
return indice_area_minima;
}
praticamente ho un vettore di strutture passato alla funzione e restituire l'indice con area minima: lì dei pow mi dice
arithmetic on pointer to an incomplete type
grazie