Fehler beim kompilieren


JanS

Grünschnabel
Hallo Community,.

ich habe vor kurzem mit C++ angefangen, mir einige tutorials besorgt und gelesen.
Unter anderem ein Tutorial zum programmieren eines kleinen Taschenrechners für den Anfang :).

Leider bekomme ich in dem Code:
Code:
#include <iostream.h>

void main(void)
{
int zahl1, zahl2, ergebnis, art;
cout << "1=Addition 2=Multiplikation" << endl;
cin >> art;
cout << "Wie lautet die 1. Zahl?"<<endl;
cin >> zahl1;
cout << "Und wie lautet die 2. Zahel?"<<endl;
cin >> zahl2;
if (art != '1')
   {
   if (art == '2')
   ergebnis = zahl1 * zahl2;
   cout << "\nDas Ergegnis ist " << ergebnis;
       else 
        cout << "\nSie haben eine falsche Rechenart gewaehlt" << endl;
   }
        else
        {
        ergebnis = zahl1+zahl2;
        cout << "Das Ergebnis ist: "<<ergebnis;
        }
}

den fehler "parse error before `else'" der angeblich in Zeile 17(kursiv, fett markiert) sein soll. Doch ich habe meinen Code mit dem Code aus dem Tutorial verglichen und er stimmt überein.

Hoffe man kann mir helfen :)
P.S.: Als Kompiler benutze ich Dev-C++ Version 4

MfG JanS
 

Kachelator

Peter Jerz
Auf das if folgen mehrere Anweisungen, die musst du in einen {}-Block packen. Und nach dem else eventuell auch, weil es dann übersichtlicher ist.
Code:
if (art == '2')
{
  ergebnis = zahl1 * zahl2;
  cout << "\nDas Ergegnis ist " << ergebnis;
}
else
{ 
  cout << "\nSie haben eine falsche Rechenart gewaehlt" << endl;
}
 
Zuletzt bearbeitet:

Sinac

Erfahrenes Mitglied
Probiers mal so:

Code:
#include <iostream.h>

void main(void)
{
int zahl1, zahl2, ergebnis, art;
cout << "1=Addition 2=Multiplikation" << endl;
cin >> art;
cout << "Wie lautet die 1. Zahl?"<<endl;
cin >> zahl1;
cout << "Und wie lautet die 2. Zahel?"<<endl;
cin >> zahl2;
if (art != '1')
   {
   if (art == '2'){
         ergebnis = zahl1 * zahl2;
         cout << "\nDas Ergegnis ist " << ergebnis;
         }
    else 
          cout << "\nSie haben eine falsche Rechenart gewaehlt" << endl;
   }
else
        {
        ergebnis = zahl1+zahl2;
        cout << "Das Ergebnis ist: "<<ergebnis;
        }
}

Greetz...
Sinac
 

JanS

Grünschnabel
Erstmal danke, beim kompilieren kommt kein fehler mehr :)

Nur leider läuft das Programm nicht so wie es soll, d.h.: Wenn ich die Rechenart auswähle und dann die zwei Zahlen eintippe kommt zum schluß immer "Sie haben eine falsche Rechenart gewaehlt"

Das bedeutet doch das einfach nur ein logischer denkfehl im code ist, oder nicht?
Wie dem auch sei, werde ich ein anderes Tutorial durcharbeiten. Auf Tuts, bei denen der Code falsch ist kann ich verzichten.

MfG JanS
 

Kachelator

Peter Jerz
Das bedeutet doch das einfach nur ein logischer denkfehl im code ist, oder nicht?
Ja, das ist gut möglich. Ich habe mir deinen Code auf Syntaxfehler hin angesehen. Ob da logische Fehler drin sind, ist wieder eine andere Geschichte, vor allem da ja keiner weiss, was genau du da eigentlich vorhast. Das ist schwieriger herauszufinden. Ich sehe es mir mal an und poste es, wenn ich was weiss.
Wenn der ursprüngliche Code in deinem Tutorial wirklich so kaputt war, ist das echt peinlich.

----später...
Ich würde den if-Block ungefähr so aufbauen:
Code:
if      (art == '1')
{
  ergebnis = zahl1 + zahl2;
  cout << "\nDas Ergegnis ist " << ergebnis;
}
else if (art == '2')
{
  ergebnis = zahl1 * zahl2;
  cout << "\nDas Ergegnis ist " << ergebnis;
}
else
{
  cout << "\nSie haben eine falsche Rechenart gewaehlt!" << endl;
}
Es ist hier nicht nötig, mehrere ifs ineinander zu verschachteln.
 
Zuletzt bearbeitet:

JanS

Grünschnabel
ok, danke :)

werde dieses Tutorial meiden, wobei es sehr benutzerfreundlich geschrieben ist, aber wie gesagt falscher code, das muss nicht sein!

MfG JanS
 

Forum-Statistiken

Themen
272.354
Beiträge
1.558.605
Mitglieder
187.826
Neuestes Mitglied
drmidu