/* 3. Ein Arbeitnehmer erhält ein Bruttogehalt B. Die Sozialabgaben
Krankenversicherung, Arbeitslosenversicherung und Rentenversicherung sind unter
Berücksichtigung der Beitragsbemessungsgrenzen zu berechnen und auszugeben.
Berechnen Sie auch das Nettogehalt (vor Steuern) und zeigen Sie alle Werte
(im Ausgabeformat 8.2) auf dem Bildschirm an.
Die Prozentsätze sollten als Konstanten definiert werden!
Hinweis: 2006 Beitragsbemessungsgrenze                  Prozentsatz:
              KV:     3562,50                              12,9 / 2 %
              RV:    5250,- West, 4400,- Ost           19,5 / 2 %
              ALV: 5150,- West, 4350,- Ost             6,5 / 2 %
Hinweis: Wenn das Bruttogehalt über der Beitragsbemessungsgrenze liegt, wird der
Beitrag aus dem Grenzbetrag und den Prozenten berechnet, sonst aus dem
Bruttogehalt und den Prozenten.
------------------------------------------------------------------------------*/
#include <stdlib.h>
                  /* Vorsicht bei ganzen Zahlen! */
int main()
{ const float kv_p=12.9/2,      rv_p=19.5/2,     alv_p=6.5/2;
        float kv_grenze=3562.5, rv_grenze=5250., alv_grenze=5150.;

  float brutto, netto;                        
  printf("\n Brutto: "); scanf("%f", &brutto);

  if( brutto < kv_grenze) kv_grenze= brutto;
  if( brutto < rv_grenze) rv_grenze= brutto;

  printf("\n Krankenversicherung bei %5.2f Prozent = %8.2f EUR.\n", kv_p,
                                                           kv_grenze*kv_p/100);

  printf("\n Rentenversicherung bei %5.2f Prozent = %8.2f EUR.\n", rv_p,
                                                           rv_grenze*rv_p/100);

  printf("\n Arbeitslosenversicherung bei %5.2f Prozent = %8.2f EUR.\n", alv_p,
                                                           rv_grenze*alv_p/100);

  netto= brutto - (kv_grenze*kv_p + rv_grenze*(rv_p +alv_p))/100 ;
  printf("\n bleibt netto vor Steuern: %8.2f, = %5.2f%%\n", netto,
                                                              netto/brutto*100);
  printf("\n\n");    system("PAUSE");       return 0;
}
