Hi,
warum sagt mir der Compiler, a wäre nicht deklariert, habe ich doch mit float[a] getan, oder?
Gruß
Olli
warum sagt mir der Compiler, a wäre nicht deklariert, habe ich doch mit float[a] getan, oder?
Code:
/* Einkommensteuerberechnung anch Richtl. 1981
Zweck: einfache if-Anweisungen
Rundungen durch Typkonversion in long
Datei: EK1.cpp
*/
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
double EST, //Einkommensteuer
E1, E2, //Hilfsgroessen
klammer, //im Hornerschema
zvE; //Eingabe: zu versteuerndes EK
long int E; //Vielfaches von 54
char ch;
char antwort;
do
{
//Eingabe
//............ Markierung fuer spätere Zwecke ..........
//clrscr();
cout << "\nBerechnung der Einkommensteuer (Tarif 1981)" ;
cout << endl << endl;
cout << " zu versteuerndes Einkommen: ";
cin >> zvE;
//Verarbeitung
E = ((long int) zvE / 54 ) * 54;
if (E <= 4212) //Nullzone
EST = 0.0;
else
if (E <= 18000) //Untere Proportionalzone
float a[5] = {3034.0, 2200.0, 695.0, 73.76, 3.05};
E1 = (E -18000)/10000.0;
if(E < 60000)
{E1 = (E - 18000)/10000.0;
EST = a[4];
for (k = 4; k >= 1; --k)
EST = long((EST * E1 + a[k-1])*1000)/1000.0;
}
else
if (E <= 129999) //Obere Progressionszone
{
E2 = (E - 60000)/10000.0;
klammer = long ((0.09*E2-5.45)*1000)/1000.0;
klammer = long ((klammer*E2+88.13)*1000)/1000.0;
klammer = long ((klammer*E2+5040)*1000)/1000.0;
klammer = long ((klammer*E2+20018)*100)/100.0;
}
else //Obere Proportionalzone
EST = 0.56 * E - 14837.0;
EST = long (EST)/1.0;
//Ausgabe
cout << "\n Bei einem zu versteuernden Einkommen von \n";
cout.setf(ios::fixed);
cout.fill('*');
cout.width(10);
cout << zvE << " Euro";
cout << endl << "betraegt die Steuer ";
cout.width(10);
cout << EST << " Euro\n";
//.............. Markierung fuer spaetere Zwecke ..............
cout << " Weiter? (j/n) ";
cin >> antwort;
while (cin.get() != '\n');
antwort = toupper (antwort);
}
while (antwort == 'J');
system("pause");
return 0;
}
Gruß
Olli