Läuft Programm durch ohne irgentwas zu machen
-
hmja... ich blicks nich... es lässt sich compilieren aber beim Start rasselts einfach ohne Ausgabe durch...
zum Programm: Es sollen max. 20 Zahlen eingelesen werden, und diese den jeweiligen Zahlenbereich zugeordnet und die Anzahl der in den jeweiligen Zahlenbereich vorkommenden Zahlen ausgegeben werden.
//ZahlenEinlesenUndSortieren.h class Sortieren { private: int Wertefeld[20]; int durchgaenge; int a0_9; int a10_19; int a20_29; int a30_39; int a40_49; int a50_59; int a60_69; int a70_79; int a80_89; int a90_99; int groesser100; public: int ZahlenEinlesen(int* Wertefeld, int durchgaenge); void ZahlenSortieren(); void Ausgabe(); };//ZahlenEinlesenUndSortieren.cpp #include <iostream> #include "ZahlenEinlesenUndSortieren.h" using std::cin; using std::cout; using std::endl; int Sortieren::ZahlenEinlesen(int* Wertefeld, int durchgaenge) { cout << "Geben sie die Werte ein die sie sortiert haben möchten: " << endl; for(int i=0;i != -1 && i<=20; i++) { cout<<"Geben sie den "<<i<<".ten wert ein:"<<endl; cout<<"(Zum Beenden der Eingabe -1 eingeben und bestätigen)"; cin >> Wertefeld[i]; //Zahlen werden mittels for-Schleife eingelesen durchgaenge++; //Durchgänge werden gezählt um die Feldgröße von Eingelesenen zu bestimmen } return durchgaenge; } void Sortieren::ZahlenSortieren() { int a0_9 = 0; int a10_19 = 0; int a20_29 = 0; int a30_39 = 0; int a40_49 = 0; int a50_59 = 0; int a60_69 = 0; int a70_79 = 0; int a80_89 = 0; int a90_99 = 0; int groesser100; for(int i = 0;i<=durchgaenge;i++) //Werte werden für die jeweilige Variable Aufaddiert { if(Wertefeld[i]>=0 && Wertefeld[i]<=9) a0_9++; if(Wertefeld[i]>=10 && Wertefeld[i]<=19) a10_19++; if(Wertefeld[i]>=20 && Wertefeld[i]<=29) a20_29++; if(Wertefeld[i]>=30 && Wertefeld[i]<=39) a30_39++; if(Wertefeld[i]>=40 && Wertefeld[i]<=49) a40_49++; if(Wertefeld[i]>=50 && Wertefeld[i]<=59) a50_59++; if(Wertefeld[i]>=60 && Wertefeld[i]<=69) a60_69++; if(Wertefeld[i]>=70 && Wertefeld[i]<=79) a70_79++; if(Wertefeld[i]>=80 && Wertefeld[i]<=89) a80_89++; if(Wertefeld[i]>=90 && Wertefeld[i]<=99) a90_99++; if(Wertefeld[i]>=100) groesser100++; } } void Sortieren::Ausgabe() { cout<< "Werte: "<< endl; for(int i=0; i<= durchgaenge;i++) { cout<< i << ".ter Wert:" << Wertefeld[i] << endl; //Es werden Erst alle Werte, dann wie viele Werte } //in Welchen Bereich vorkommen ausgegeben cout << "Werte im Zahlenbereich: " << endl; cout << "0-9: " << a0_9 << endl; cout << "10-19: " << a10_19 << endl; cout << "20-29: " << a20_29 << endl; cout << "30-39: " << a30_39 << endl; cout << "40-49: " << a40_49 << endl; cout << "50-59: " << a50_59 << endl; cout << "60-69: " << a60_69 << endl; cout << "70-79: " << a70_79 << endl; cout << "80-89: " << a80_89 << endl; cout << "90-99: " << a90_99 << endl; }//main.cpp #include "ZahlenEinlesenUndSortieren.h" #include <iostream> using std::cin; using std::cout; using std::endl; int main() { int ZahlenEinlesen(); //Funktion zum Zahlen einlesen wird aufgerufen void ZahlenSortieren(); // Zahlen werden sortiert void Ausgabe(); //Zahlen werden sotiert ausgegeben system("pause"); return 0; }danke im Voraus

-
Du musst ein Sortieren Objekt erstellen und dann die Methoden aufrufen.
Du hast nur Funktionen Deklariert in deiner Main.int main() { Sortieren sort; sort.ZahlenEinlesen(/*...*/); //Funktion zum Zahlen einlesen wird aufgerufen sort.ZahlenSortieren(/*...*/); // Zahlen werden sortiert sort.Ausgabe(/*...*/); //Zahlen werden sotiert ausgegeben system("pause"); return 0; }Edit: Und natürlich müssen die Methoden mit den entsprechenden Parametern aufgerufen werden. Das überlasse ich aber Dir.
Simon
-
hi,
danke für die schnelle Antwort, den einen teil hab ich Verstanden,
nur wenn ichsort.ZahlenEinlesen(int* Wertefeld, int durchgaenge)als parameter setze,
gibt der compiler mir 3 Fehlermeldungen als ausgabe1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2144: Syntaxfehler: 'int' sollte auf ')' folgen 1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2660: 'Sortieren::ZahlenEinlesen': Funktion akzeptiert keine 0 Argumente 1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2059: Syntaxfehler: ')'mfg und nochmal danke, bin leider noch n blutiger anfänger...
carsten
-
Ohne mir deinen Code wirklich angesehen zu haben: Kann es sein, dass du versuchst, deine Funktion aufzurufen und dabei als Parameter "int *Wertefeld" schreibst? Wenn dem so ist, dann lass das "int *" weg, das gehört nur in die Deklaration/Definition, nicht in den Aufruf.
-
c4r573n schrieb:
hi,
danke für die schnelle Antwort, den einen teil hab ich Verstanden,
nur wenn ichsort.ZahlenEinlesen(int* Wertefeld, int durchgaenge)als parameter setze,
gibt der compiler mir 3 Fehlermeldungen als ausgabe1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2144: Syntaxfehler: 'int' sollte auf ')' folgen 1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2660: 'Sortieren::ZahlenEinlesen': Funktion akzeptiert keine 0 Argumente 1>d:\zahleneinlesenundsortieren\zahleneinlesenundsortieren\main.cpp(11) : error C2059: Syntaxfehler: ')'mfg und nochmal danke, bin leider noch n blutiger anfänger...
carsten
Ich schätze mal, Du versuchst die Funktion
Sortieren::ZahlenEinlesen(int* Wertefeld, int durchgaenge)mit dem Aufruf
sort.ZahlenEinlesen(int* Wertefeld, int durchgaenge);aufzurufen.
Das geht so nicht. Du musst da Werte oder Variablen übergeben, und nicht eifach die Funktionssignatur (die Beschreibt, wie die Funktion heisst, und wie die Parameter beschaffen sind) hinschreiben:const int Durchgaenge_Anzahl = 20; int Wertefeld_Daten[Durchgaenge_Anzahl]; sort.ZahlenEinlesen(Wertefeld_Daten, Durchgaenge_Anzahl);