Wo liegt der Fehler in meinem Code?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

1) Deine Variable operator musst du umbenennen, da operator in C++ ein bereits reserviertes Schlüsselwort ist.

2) Die Variable operator müsste den Typ char (nicht char*) bekommen. Dann kann die Konsoleneingabe via cin in die Variable gegeben werden.

3) Deine cases sind alle in der Formulierung falsch. Der zu prüfende Wert kommt vor den Doppelpunkt. Er wird mit dem Wert aus dem Kopfbereich verglichen. Also:

switch (rechenoperator) {
  case '+':
    /* ... */
  case '-':
    /* ... */
  /* etc. ... */
}

4) Die Variable Ergebnis hast du bereits vor dem switch deklariert. Du kannst sie daher innerhalb des Konstrukts nicht erneut deklarieren (es sei denn, du würdest die Anweisungen der jeweiligen cases in explizite Code-Blöcke einbetten).

Belasse es einfach bei einer Definition:

double ergebnis;
/* ... */

switch (rechenoperator) {
  case '+': {
    /* ... */
    ergebnis = st + nd;
    cout << "Das Ergebnis ist " << ergebnis;
    break;
  /* etc. ... */

Im Übrigen würde ich dir empfehlen, schon jetzt schon darauf zu achten, eindeutige und ausdrucksstarke Bezeichner für deine Variablen zu finden (also nicht st oder nd) und dich dabei an üblichen Code-Konventionen zu orientieren (lokale Variablen beginnen üblicherweise mit einem Kleinbuchstaben).