hilfe bei c++

freaki

Cadet 2nd Year
Registriert
Dez. 2004
Beiträge
30
moin
vorab ich bin blutiger noop bei c++. bring mir grad das selber bei mit sehr viel lesen.
die fiúnktionen kann ich schon jetz wollte ich selber ein prog schreiben zum üben.
es soll ein auswahl zwischen 2 sachen sein und dann soll das rog die eingegebenen zahlen + oder - kommt aufn auswahl an.
jetz beim compilen sind 2 fehler ich find die aber net
kann mir da jemand helfen.
PS. es gibt bestimmt bessere wege das zu lösen(schreiben) aber zum verständnis voran gerlernten sachen wollte cih das so schreiben.

Code:
#include <iostream.h>
using namespace std;
float addieren(float x, float y)
{
      float ergebnis = x + y;
      return ergebnis;
      };
float subtrahieren (float x1,float y1)
{
      float E1=x1-y1;
      return E1;
      };
      
int main()
{
    float zahl1;
    float zahl2;
    float zahl3;
    float zahl4;
    float zahl5;
    const float auswahl=1;
    
    cout<<"1.addieren"<<endl;
    cout<<"2.subtrahieren"<endl;
    cout<<"Wählen sie aus"<<endl;
    cin>>zahl1;
    if (zahl1>auswahl)
    {
                      cout<<"geben sie die erste zahl zum + ein"<<endl;
                      cin>>zahl2;
                      cout<<"geben sie die zweite zahl zum + ein"<<endl;
                      cin>>zahl3;
                      cout<<"das ergebnis lautet"<<addieren(zahl2,zahl3)<<endl;
                      return 0;
                      }
    else if(zahl1<auswahl)
    {
        cout<<"geben sie die erste zahl zum - ein"<<endl;
        cin>>zahl4;
        cout<<"geben sie die zweite zahl zum - ein"<<endl;
        cin>>zahl5;
        cout<<"das ergebnis lautet"<<endl<<subtrahieren(zahl5,zahl4);
        return 0;
        };

thx im vorraus

freaki
 
Zuletzt bearbeitet von einem Moderator:
Schau mal, so sieht die ganze Geschichte doch schon viel einfacher aus:

PHP:
#include <cstdlib>
#include <iostream>

using namespace std;

float addieren(float x, float y){
                     float ergebnis = x + y;
                     return ergebnis;
                     }


float subtrahieren (float x, float y){
                   float ergebnis = x - y;
                   return ergebnis;
                   }
                   
int main(){
    
    float zahl1;
    float zahl2;
    float ergebnis;
    int auswahl;
    
    cout << "1 fuer addieren" << endl;
    cout << "2 fuer subtrahieren" << endl;
    cout << "Waehlen Sie bitte aus: " << endl;
    
    cin>>auswahl;
    if (auswahl == 1){
       cout << "geben Sie die erste Zahl ein " << endl;
       cin >> zahl1;
       cout << "geben Sie die zweite Zahl ein " << endl;
       cin >> zahl2;
       cout << "das Ergebnis lautet " << addieren(zahl1,zahl2) << endl;
    }else {
          cout << "geben Sie die erste Zahl ein " << endl;
          cin >> zahl1;
          cout << "geben Sie die zweite Zahl ein " << endl;
          cin >> zahl2;
          cout << "das Ergebnis lautet " << endl << subtrahieren(zahl1,zahl2) << endl;
    }
    
    
    
    system("PAUSE");
    return 0;
}
 
jo thx wie gesagt bin anfänger bin für jeden verbesserungs vorschlag bereit.
fehler sind ja da um daraus zu lernen :freaky:

noch ne frage wie bekomme ich das so hin dass das program wieder von vorne anfängt und nicht das ich das program wieder öfnen muss.
freaki
 
Zuletzt bearbeitet:
am einfachsten in dem du die main-function am ende der main-function einfach nochmal aufrufst. sauberer wäre es aber wohl wenn du alles was jetzt in main steht in eine extra function packen würdest und in main dann eine endlosschleife benutzt.

das einzige problem wäre das du dann das programm nichtmehr so einfach beenden könntest. da müsstest du dir also noch was dazu basteln das das programm beendet wird wenn man eine bestimmte eingabe macht.
 
hmm
wie soll ich das jetz schreiben schätz ma net einfach return main; stat return 0;.
wär nett wenn jemand das als code zeigen würde

MFG : freaki
 
Naja, du könntest einfach am ende der main nochmal die main aufrufen. Also mit
Code:
main ();
Das Problem dabei ist dass dadurch immer wieder ein neuer Kontext der Prozedur gespeichert wird. Das heißt alle Variablen die du benutzt hast in der Main belegen beim neuaufruf wieder neuen Speicher, während die alten ungenutzt im Speicher rumliegen. Also die denkbar ungünstigste Variante. ;)

Viel besser wäre es den ganzen Kram z.b. in eine While-Schleife zu packen innerhalb der Main, also z.B.
Code:
while (TRUE) 
{
   ....
}
Dadurch wird die Main einfach immer wieder neu ausgeführt und belegt bei der 2. Ausführung nicht mehr Speicher.

Wenn du das Programm dann noch Benutzerdefiniert beenden lassen willst, kannst du statt TRUE eine Variable nehmen, und die im Schleifenkörper durch Benutzerabfrage auf FALSE setzen. :)

PS: Das "return 0" muss außerhalb des Schleifenkörpers stehen.
 
Zurück
Oben