wo ist der fehler?

B

Benedikt

Also ich lerne ja wie gesagt seit ein paar Tagen C++, und habe mir jetzt mal ein Programm zur Übung schreiben wollen. Das Ziel war folgendes: Am Anfang gibt man 1, 2 oder 3 ein, dann kann man entweder die Fläche, den Umfang oder die Volumen eines Raumes ausrechnen.
Wenn ich das ausführe, gebe ich dann eine Zahl zwischen 1 und 3 ein, und dann die Länge, Breite usw. Wenn ich dann das Ergebnis habe, steht dann wieder "Länge eingen:" da. Also der macht, wenn ich als erstes die Volumen berechnet habe dann gleich mit Umfang oder so weiter, anstadt das Programm zu beenden.
Hat jemand ne idee, was ich falsch gemacht habe?

#include <iostream.h>

int flaeche (int x, int y);
int umfang (int x, int y);
int volumen (int x, int y, int z);

int main()
{
int x,a,b,c,v;

cout << "1.: Flaeche eines Raumes berechnen\n";
cout << "2.: Umfang eines Raumes berechnen\n";
cout << "3.: Volumen eines Raumes berechnen\n\n";
cout << "Eingabe:";
cin >> x;

if (x==1)
cout << "\nBitte die Laenge und Breite des Raumes eingeben:\n";
cout << "\nLaenge:";
cin >> a;
cout << "Breite:";
cin >> b;
cout << "\n\nRechne...\n";
c = flaeche(a,b);
cout << "\nErgebnis: " << c;
if(x==2)
cout << "\nBitte die Laenge und Breite des Raumes eingeben:\n";
cout << "\nLaenge:";
cin >> a;
cout << "Breite:";
cin >> b;
cout << "\n\nRechne...\n";
c = umfang(a,b);
cout << "\nErgebnis: " << c;
if(x==3)
cout << "\nBitte die Laenge, Breite und Hoehe des Raumes eingeben:\n";
cout << "\nLaenge:";
cin >> a;
cout << "Breite:";
cin >> b;
cout << "Hoehe:";
cin >> v;
cout << "\n\nRechne...\n";
c = volumen(a,b,v);
cout << "\nErgebnis: " << c;
return 0;
}

int flaeche (int x, int y)
{
return x*y;
}

int umfang (int x, int y)
{
return ((x+y)*2);
}

int volumen (int x, int y, int z)
{
return x*y*z;
}

Danke, Benedikt
 
Du solltest schon Klammern setzen!!!

Deine If-Anweisung gilt nähmlich nur bis zum ersten Semikolon:
Code:
if (x==1)
cout << "\nBitte die Laenge und Breite des Raumes eingeben:\n";
Der Rest wird ganz normal interpretiert! So wäre es richtig! Siehe Beispiel

Code:
// Berechnung.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream.h> 

int flaeche (int x, int y); 
int umfang (int x, int y); 
int volumen (int x, int y, int z); 

int main() 
{ 
    int x,a,b,c,v; 

    cout << "1.: Flaeche eines Raumes berechnen\n"; 
    cout << "2.: Umfang eines Raumes berechnen\n"; 
    cout << "3.: Volumen eines Raumes berechnen\n\n"; 
    cout << "Eingabe:"; 
    cin >> x; 

    if (x==1)
    {
        cout << "\nBitte die Laenge und Breite des Raumes eingeben:\n"; 
        cout << "\nLaenge:"; 
        cin >> a; 
        cout << "Breite:"; 
        cin >> b; 
        cout << "\n\nRechne...\n"; 
        c = flaeche(a,b); 
        cout << "\nErgebnis: " << c;
    }

    if(x==2) 
    {
        cout << "\nBitte die Laenge und Breite des Raumes eingeben:\n"; 
        cout << "\nLaenge:"; 
        cin >> a; 
        cout << "Breite:"; 
        cin >> b; 
        cout << "\n\nRechne...\n"; 
        c = umfang(a,b); 
        cout << "\nErgebnis: " << c; 
    }

    if(x==3) 
    {
        cout << "\nBitte die Laenge, Breite und Hoehe des Raumes eingeben:\n"; 
        cout << "\nLaenge:"; 
        cin >> a; 
        cout << "Breite:"; 
        cin >> b; 
        cout << "Hoehe:"; 
        cin >> v; 
        cout << "\n\nRechne...\n"; 
        c = volumen(a,b,v); 
        cout << "\nErgebnis: " << c; 
    }

    return 0; 
} 

int flaeche (int x, int y) 
{ 
    return x*y; 
} 

int umfang (int x, int y) 
{ 
    return ((x+y)*2); 
} 

int volumen (int x, int y, int z) 
{ 
    return x*y*z; 
}
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück