#include <stdio.h>          /* Schleifen */

/* 3 Für eine Gruppe von Studenten sind die Anzahl der Studenten und die von den
einzelnen erreichten Punkte einzulesen. Ermitteln Sie,
* wieviel Punkte im Mittel erreicht wurden,
* wieviel Punkte der beste und wieviele der schlechteste hat sowie
* wer (Nr.) die meisten und wer die wenigsten Punkte hatte unter der Annahme,
daß das Maximum und das Minimum nur einmal auftreten.
------------------------------------------------------------------------------*/
/*  geg.: anz, Punkte p
  ges.: Mittelwert der Punkte  - du
        Max. und Min. der Punkte - max, min
        Nr. von Max. und Min.  - imax, imin
 Lsg.:  Anfangswert für Addition du=0
        Anzahl einlesen
        for-Schleife über alle Studenten (von 1 bis anz)
           Punkte p einlesen,
           beim ersten Durchlauf min=max=p, imin=imax=1
           wenn p>max -> max=p und imax=i
           wenn p<min -> max=p und imax=i
           du = du+p
        wenn anz>0 du=du/anz (sonst bleibt du=0)
        Ergebnisse anzeigen
------------------------------------------------------------------------------*/
int main()
{
   int  i, anz, imax, imin;
   float du, p, max, min;

   du= p= max= min=0; imax= imin= 0;

   printf("Anzahl der Studenten:"); scanf("%i", &anz);

   for (i=1; i<=anz; i++)
   {  printf("%d. erreichte Punkte:",i); scanf("%f", &p);

      if (i==1)  { min= p; imin= i; max= p; imax= i;}
      else
      {  if (p> max) { max= p; imax= i;}
         if (p< min) { min= p; imin= i;}
      }
      du += p;
   };
   if (anz>0) du= du/anz;
   printf("\nMittelwert: %4.1f Punkte\n\n", du);

   printf(" bester:        Student %d mit %4.1f Punkten\n", imax, max);
   printf(" schlechtester: Student %d mit %4.1f Punkten\n\n", imin, min);

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