Einzelnen Beitrag anzeigen
Alt 02.12.2002, 19:30   #11
kikakater
Inventar
 
Registriert seit: 24.01.2001
Beiträge: 5.631


Standard

Hoffentlich hilft es Dir :

Code:
typedef struct {
 double bruttoeinkommen,steuer;
} STEUERPARAMETER;

int steuer_berechnen(STEUERPARAMETER *pSt);

/*
 Progressionstufe i hat den Laufindex x, x = i - 1, bei i >= 1

progressionsstufe[x][0] ... Steuerbasis Stufe i
progressionsstufe[x][1] ... Steuersatz Stufe i
*/

#define SPITZENSTEUERSATZ 50.0

double progressionsstufe[][2] = { 3640.0, 31.0 , 14534.0, 41.0 , 29069.0, SPITZENSTEUERSATZ , 0.0, 0.0 };

int main( void )
{
 STEUERPARAMETER St;

 printf("EinkommensSteuerBerechnungsProgramm von Andreas Schmidberger");
 printf("\n\n\nBitte geben Sie ihr BRUTTO Einkommen ein-->");
 scanf("%lf",&St.bruttoeinkommen);

 if( steuer_berechnen(&St) < 0 )
 { printf("Fehler bei der Steuerberechnung\n"); exit(0); }

 printf("Ihre Einkommenssteuer beträgt %.2lf Euro\n"
        "Ihr Nettoeinkommen beläuft sich auf %.2lf Euro\n", St.steuer, St.bruttoeinkommen - St.steuer);

 return 0;
}

/* Steuer bezogen auf die Progressionstufen berechnen */
int steuer_berechnen(STEUERPARAMETER *pSt)
{
 int x;

 pSt->steuer = 0.0;

 if(pSt->bruttoeinkommen < 0.0) return -1;

 for( x = 0 ; ; x++ )
 {
  if( pSt->bruttoeinkommen <= progressionsstufe[x][0] ) break;

  if( progressionsstufe[x][1] == SPITZENSTEUERSATZ )
  {
   pSt->steuer = pSt->steuer + ((pSt->bruttoeinkommen - progressionsstufe[x][0]) * progressionsstufe[x][1] / 100.0);
   break;
  }

  if( pSt->bruttoeinkommen < progressionsstufe[x+1][0] )
   pSt->steuer = pSt->steuer + ((pSt->bruttoeinkommen - progressionsstufe[x][0]) * progressionsstufe[x][1] / 100.0);
  else
   pSt->steuer = pSt->steuer + ((progressionsstufe[x+1][0] - progressionsstufe[x][0]) * progressionsstufe[x][1] / 100.0);

 }

 return 0;
}
kikakater ist offline   Mit Zitat antworten