hund555 Geschrieben 22. Januar 2005 Geschrieben 22. Januar 2005 Hallo Leute, ich hab ein Programm geschrieben, (siehe 1. Programm) und jetzt möchte ich dass das programm mit 2 funktionen läuft (max und mitte) leider komme da fehler ich weiß nicht warum ... 1. Programm : #include<iostream.h> #include<stdlib.h> void main(void) { int wahl; do { float weite[5], mitte=0; int max=0; for (int i=0; i<5; i++) { do { cout << " Geben Sie den " << i+1 << " Wurf an: " << endl ; cin >> weite; if (weite<0) cout << "Fehler! Der Wurf kann nicht kleiner als 0 sein\n"; } while(weite<0); } for (int i=0; i<5; i++) { if (max<weite) { max=weite; } } cout << " Der groesste Wurf lieft bei " << max << " Meter!\n"; for (int i=0; i<5; i++) { mitte=mitte+weite; } mitte=(mitte-max)/4; cout << " Der Mittelwert der 4 kleineren Wurfweiten liegt bei " << mitte << " Meter!\n"; cout << endl; cout << "Moechten Sie das Programm noch ein Mal durchfuehren? Bitte 1 drücken, sonst beliebige Taste\n"; cin >> wahl; } while(wahl==1); } ------- 2 programm: #include<iostream.h> #include<stdlib.h> float max(float *weite) { float fmax=0; for (int i=0; i<5; i++) { do { cout << " Geben Sie den " << i+1 << " Wurf an: " << endl ; cin >> weite; if (weite<0) cout << "Fehler! Der Wurf kann nicht kleiner als 0 sein\n"; } while(weite<0); for (int i=0; i<5; i++) { if (fmax<weite) { fmax=weite; } } return fmax; } void mitte(float max, float *weite) { float fmitte; for (int i=0; i<5; i++) { fmitte=fmitte+weite; } fmitte=(fmitte-max)/4; cout << " Der durchschnitt der 4 niedrigsten liegt bei " << fmitte << " Meter!\n"; } void main(void) { do { int wahl; float mainweite[5], mainmitte, mainmax; mainmax = max(mainweite); cout << " Der groesste Wurf lieft bei " << mainmax << " Meter!\n"; mitte(mainmax, mainweite); cout << "Moechten Sie das Programm noch ein Mal durchfuehren? Bitte 1 drücken, sonst beliebige Taste\n"; cin >> wahl; } while(wahl==1); }
hund555 Geschrieben 22. Januar 2005 Autor Geschrieben 22. Januar 2005 #include<iostream.h> #include<stdlib.h> float max(float *weite) { float fmax=0; for (int i=0; i<5; i++) { do { cout << " Geben Sie den " << i+1 << " Wurf an: " << endl ; cin >> weite; if (weite<0) cout << "Fehler! Der Wurf kann nicht kleiner als 0 sein\n"; } while(weite<0); for (int i=0; i<5; i++) { if (fmax<weite) { fmax=weite; } } return fmax; } void mitte(float max, float *weite) { // parse error before `{' float fmitte; for (int i=0; i<5; i++) { fmitte=fmitte+weite; `fmitte' undeclared (first use this function) } fmitte=(fmitte-max)/4; cout << " Der durchschnitt der 4 niedrigsten liegt bei " << fmitte << " Meter!\n"; } void main(void) { do { int wahl; float mainweite[5], mainmitte, mainmax; mainmax = max(mainweite); cout << " Der groesste Wurf lieft bei " << mainmax << " Meter!\n"; mitte(mainmax, mainweite); implicit declaration of function `int mitte(...)' cout << "Moechten Sie das Programm noch ein Mal durchfuehren? Bitte 1 drücken, sonst beliebige Taste\n"; cin >> wahl; } while(wahl==1); `wahl' undeclared (first use this function) }
robotto7831a Geschrieben 22. Januar 2005 Geschrieben 22. Januar 2005 int wahl muss außerhalb der Schleife stehen. Denn diese Variable ist nur in der Schleife gültig. In der Methode max fehlt eine } Klammer. Frank
hund555 Geschrieben 22. Januar 2005 Autor Geschrieben 22. Januar 2005 oje, ganz leichte fehler .... ich dachte das liegt daran, dass ich bei funktionen was falsch gemacht hab ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden