/*                         Funktionen und expl. Zeiger   -   Schwerpunkt      */

/* 5. Berechnen Sie den Schwerpunkt eines Systems von n  Punkten (n<=500) in der
Ebene, ohne Strukturen zu verwenden und mit Hilfe einer Funktion für das
EINLESEN der Koordinaten eines(!) Punktes und einer für das BERECHNEN und
wertmäßige Zurückliefern der Schwerpunktkoordinaten.
Hinweis: xs= (x1+x2+...+xn)/n           ys= (y1+y2+...+yn)/n
----------------------------------------------------------------------------- */
#include <stdlib.h>                                        

void einlesen( float* x, float* y)
{
    printf(" Koordinaten: "); scanf("%f %f", x, y);
}

void berechnen( float x[], float y[], int anz, float* xs, float* ys)
{
   *xs= *ys= 0;

    for( int i=0; i<anz; i++) { *xs = *xs + x[i];   *ys = *ys + y[i]; }

    if( anz> 0)               { *xs = *xs/ anz;     *ys = *ys/ anz;   }
}

int main()
{
  int i, n; float xp[500], yp[500], xs, ys;

  printf("\n Anzahl der Punkte: ");        scanf("%i", &n);    if(n>500) n=500;

  for( i=0; i<n; i++) einlesen( &xp[i], &yp[i] );

  berechnen( xp, yp, n, &xs, &ys);

  printf("\n Schwerpunktkoordinaten: (%.1f %.1f)\n\n", xs, ys);

  system("PAUSE"); return 0;
}
/*-----------------------------------------------*/
