#include <stdio.h>             /* Schleifen - while - do - Summieren, Minimum */
 
/* 1. In einem Geschäft wurden an einem Tag von mehreren Artikeln 'anz' Stück
bei einem Preis von 'p' EUR verkauft, beides ist jeweils einzulesen. Bei Eingabe
negativer Werte ist die Eingabe zu wiederholen! Die Eingabe wird beendet, wenn
als Preis 0 eingegeben wird! Es sind zu ermitteln: 
der Gesamtumsatz des Geschäftes an diesem Tag,
die Anzahl der verschiedenen Artikel, die Anzahl der verkauften Artikel,
die im Mittel verkaufte Stückzahl sowie der billigste Artikel und sein Preis.
------------------------------------------------------------------------------*/
/* Gegeben: Preis und Stückzahl der verkauften Artikel

Gesucht:  Gesamtumsatz des Geschäftes an diesem Tag,
          die Anzahl der verschiedenen Artikel,       
          die Anzahl der verkauften Artikel,
          die im Mittel verkaufte Stückzahl sowie
          der billigste Artikel und sein Preis.
Lösung:
   preis  einlesen, wenn <0 wiederholen, wenn 0 Ende der Eingabe
      anzahl einlesen, wenn <=0 wiederholen
      Gesamtumsatz= Summe( Preis* Stückzahl)      -> umsatz= umsatz+preis*anzahl
	  Anzahl der verschiedenen Artikel: zählen    -> i= i+1
	  Anzahl der verkauften Artikel= Summe der Stückzahlen
                                                  -> gesamt= gesamt+ anzahl
      beim ersten Durchlauf: minpreis= 1. Preis, Artikelnummer imin=1
      danach minpreis mit den anderen Preisen vergleichen und
      wenn einer niedriger ist,
                      diesen auf minpreis merken und die Nummer auf imin merken.
   Ende der Eingabeschleife
   Mittel= Anzahl der verkauften / Anzahl der verschiedenen Artikel
      -> mittel= gesamt/ i
      Ergebnisse anzeigen
------------------------------------------------------------------------------*/
main()
{  int i, anzahl, gesamt, imin;                             /* Vereinbarungen */
   float preis, umsatz, mittel, minpreis;
   i= 0; gesamt= 0; umsatz= 0;            /* Initialisieren für das Summieren */
   preis= 1;                        /* Initialisieren für die while-Bedingung */
   printf("\n Tagesumsatz eines Ladens: \n");
   while( preis!= 0)/* ------------------------------------------------------ */
   {   do{ printf("\n Preis des %i. Artikels (Ende bei 0): ", i+1);
           scanf("%f",  &preis);
       }while(preis<0);                                   /* Eingabekontrolle */
       if( preis == 0) break;                   /* Abbruch der while-Schleife */
       do{ printf(" verkauft: ");
           scanf("%i", &anzahl);                          /* Eingabekontrolle */
       }while( anzahl <=0);
       /*------------------------------------------------------- Berechnungen */
       i= i+ 1;          /* Zählen der Artikel, die überhaupt verkauft wurden */
       gesamt= gesamt+ anzahl;                /* Summieren der Verkaufszahlen */
       umsatz= umsatz+ anzahl*preis;      /* Umsatzberechnung (Skalarprodukt) */
       if( i== 1){ minpreis= preis; imin= 1;  /* Initialisieren für's Minimum */
                 }
       else if( preis< minpreis){ minpreis= preis; imin= i;
                                }          /* neues Minimum + Position merken */
   }/*while-ende*/
   /*---------------------------------------------------------------- Ausgabe */
   printf("\n Tagesumsatz= %.2f EUR\n", umsatz);
   if( i!= 0)                                     /* Absicherung der Division */
   {   mittel= (float)gesamt/i;                    /* (float) = Typumwandlung */
       printf("\n von %i Artikeln wurden %i verkauft, d.h. im  Mittel = %.2f "
              "Stueck.\n\n Billigster Artikel war Nummer %i mit %.2f EUR \n\n",
              i, gesamt, mittel, imin, minpreis);
   }/*if*/
   system("PAUSE");
} /*-------------------------------------------------------------------- Ende */
