vedere https://it.wikipedia.org/wiki/Formula_dell%27area_di_Gauss
#include "stdio.h" #include "stdlib.h" #include "math.h" typedef struct { float x; float y; } Coordinate; float calcola_area(Coordinate *c) { int nv=sizeof(c); int count=0; float sum1=0.0,sum2=0.0; for(;count<nv-1;count++) { sum1+=c[count].x*c[count+1].y; sum2+=c[count].y*c[count+1].x; } sum1+=c[x].x*c[0].y; sum2+=c[x].y*c[0].x; return fabsf(sum1-sum2)/2; } int main() { int count=0, nv; printf("Inserire il numero di vertici: "); scanf("%d", &nv); Coordinate *coordinate; coordinate = malloc(nv*sizeof(Coordinate)); if(coordinate==NULL) { printf("Errore allocazione puntatore coordinate"); return 1; } for(count=0;count<nv;count++) { printf("Inserire vertice %d: ", x); scanf("%f,%f", &coordinate[count].x, &coordinate[count].y); } printf("Area: %f\n", calcola_area(coordinate)); }