/* 1. Implementieren Sie ein Programm für die Arbeit mit Feldern, das folgende
Funktionen enthält und testet:
* init, zum Einlesen der Anzahl der Feldelemente und initialisieren des Feldes,
* zeige, zum Ausgeben eines Feldes und
* standard, zum Berechnen der Werte des arithmetische Mittels und der
Standardabweichung der Feldelemente von diesem Mittelwert.
------------------------------------------------------------------------------*/
#include <stdlib.h>
#define ma 1000
int init( float feld[])
{ int i, n;
  printf("\n Anzahl der Feldelemente (max.%i): ", (ma)); scanf("%i", &n);
  if( n<1 || n>ma) n= ma;   printf("\n uns nun die Feldelemente: \n");
  for( i=0; i<n; i++)scanf("%f", &feld[i]);
  return n;
}
void zeige( int n, float feld[])
{ int i;
  printf("\n"); for( i=0; i<n; i++){ printf("%10f", feld[i]); printf("\n");}
}
void standard( int n, float feld[], float * m, float * s)
{ int i;
  *m = 0;
  for( i=0; i<n; i++) *m= *m + feld[i]; {  if( n>0) *m= *m/n; }
  *s = 0;
  for( i=0; i<n; i++)                   {*s= *s + (*m - feld[i])*(*m - feld[i]);}
  if( n>1)                              {*s= sqrt( *s/(n-1) );}
}
int main()
{ float f[ma], mittel, stdabw; int n;

  n= init( f); zeige( n, f);  standard( n, f, &mittel, &stdabw);

  printf("\n Mittelwert= %f, Standardabweichung=%f\n", mittel, stdabw);
  printf("\n");    system("PAUSE");      return 0;
}
