Problem bei der Kompilierung: E2140 ...
-
Mein Quelltext sieht folgendermaßen aus:
/************************************************************************ * Titel: aufgabe1.c * * Datum: 2006-10-15 * * * * Autor: * * * * Beschreibung: beliebig viele Nettobetraege werden mit MwST, Brutto, * * Gesamt ausgegeben * ************************************************************************/ #include <stdio.h> //Standard IO #include <conio.h> //Console IO #define MWST 0.16 //aktueller MwSt-Satz void main() { clrscr(); int max; //Anzahl Eingaben und Nettobetraege printf("Wie viele Nettobetraege moechten Sie eingeben: "); scanf("%d",&max); int j; //fuer die for-Schleife bei der Gesamtberechnung int i; //fuer die for Schleifen float netto[max]; //Array fuer die vom Benutzer eingegeben Nettobertaege float mwst[max]; //Array fuer die zugehoerigen MwSt-Betraege float brutto[max]; //Array fuer den sich daraus ergebenden Brutto-Betrag float snetto; //Gesamt-Netto float sbrutto; //Gesamt-Brutto float smwst; //Gesamt-MwSt clrscr(); //Bildschirm loeschen for (i=1;i<=max;i++) //Benutzereingaben: max Nettobetraege { printf("Geben Sie bitte den %d ten Betrag ein: ",i); scanf("%f",&netto[i-1]); //Input mwst[i-1]=netto[i-1]*MWST; //Berechnung der einzelnen MwSt brutto[i-1]=netto[i-1]+mwst[i-1]; //Berechnung der einzelnen Bruttobetraege } clrscr(); //Bildschirm loeschen for (i=1;i<=max;i++) //Ausgabe der max einzelnen Netto-/MwSt-/Brutto-Betraege { printf("%d ter Nettobetrag: %f \n",i,netto[i-1]); printf(" MwSt: %f \n",mwst[i-1]); printf(" Bruttobetrag: %f \n",brutto[i-1]); printf("-------------------------------------\n"); } for (i=1;i<=max;i++) //Berechnung der Gesamtsummen { snetto=snetto+netto[i-1]; smwst=smwst+mwst[i-1]; sbrutto=sbrutto+brutto[i-1]; } printf("Gesamt Netto: %f\n",snetto); //Ausgabe Gesamt Netto printf(" MwSt: %f\n",smwst); //Ausgabe Gesamt MwSt printf("Gesamt Brutto: %f\n",sbrutto); //Ausgabe Gesamt Brutto } //gehoert zu main ()
Ich möchte, dass der Benutzer beliebig viele Nettobeträge eingegeben kann und diese dann am Ende mit MwSt und Brutto ausgegeben werden, wobei natürlich auch eine Gesamtsumme erscheinen muss.
Ich bin noch ganz neu in der Programmierung und hoffe Ihr könnt was mit meinen Kommentaren anfangen.
Mein Problem:
Beim Kompilieren mit dem BCC32 erscheint folgender Fehler:
Error E2140 aufgabe.c 22: Declaration is not allowed here in function main
...
...
das bei jeder Variablendeklaration.Ich weiß ehrlich gesagt überhaupt nicht, wo da der Fehler liegen soll?
Wäre für Ratschläge sehr dankbar.
-
Nach dem C89 Standard gehören Variablen an den anfang einer Funktion. Vor allen Funktionsaufrufen in der Funktion.
-
Ah, vielen Dank.
Aber wie kann ich das dann mit der Variablen "max" realisieren, um die Größe des Array zu bestimmen?
-
-
Ich habe soeben dein script mit dem 'Dev-C++' getestet.
Nach dem entfernen von "clrscr();" hat er es ohne fehler compiliert!Aber, dieser Gesammtwert ????
Wie viele Nettobetraege moechten Sie eingeben: 2 Geben Sie bitte den 1 ten Betrag ein: 12.2 Geben Sie bitte den 2 ten Betrag ein: 22.12 1 ter Nettobetrag: 12.200000 MwSt: 1.952000 Bruttobetrag: 14.151999 ------------------------------------- 2 ter Nettobetrag: 22.120001 MwSt: 3.539200 Bruttobetrag: 25.659201 ------------------------------------- Gesamt Netto: 34.320000 MwSt: 5.491200 Gesamt Brutto: 7816123770170603600000000000000000.000000 Drücken Sie eine beliebige Taste . . .
-
Geht auch mit VLAs, aber dafür brauchst du einen C99 compatiblen Compiler. Der BCC geht da z.B. nicht.