Kleines Problem



  • Ich will grad ein kleines Programm machen was den Flächeninhalt und das Volumen von unterschiedlichen Körpern etc. berechnet.

    #include <iostream>
    using namespace std;
    
    int main()
    {
          cout<<"*******************************************************************************"<<endl;
          cout<<"*                       Volumen und Flaechenberechnung                        *"<<endl;
          cout<<"*******************************************************************************\n\n"<<endl;
          cout<<"Flaecheninhalt\n";
          cout<<"[1]Rechtwinkliges Dreieck\n";
          cout<<"[2]Allgemeines Viereck\n";
          cout<<"[3]Trapez\n";
          cout<<"[4]Parallelogramm\n";
          cout<<"[5]Drachenviereck\n";
          cout<<"[6]Rechteck\n";
          cout<<"[7]Kreis\n";
          cout<<"[8]Quadrat\n";
          cout<<"\nVolumen\n";
          cout<<"[9]Wuerfel\n";
          cout<<"[10]Quader\n";
          cout<<"[11]Prisma\n";
          cout<<"[12]Kreiszylinder\n";
          cout<<"[13]Pyramide\n";
          cout<<"[14]Kreiskegel\n";
          cout<<"[15]Kugel\n";
          cout<<"\nBitte waehlen Sie!\n";
          float Wahl;
          cin>>Wahl;
          {
                              if (Wahl==1)
                              cout<<"Bitte geben Sie die erste Kathede ein:\n";
                              double a;
                              cin>>a;
                              cout<<"Bitte geben Sie die zweite Kathede ein:\n";
                              double b;
                              cin>>b;
                              double A;
                              A=(a*b)/2;
                              cout<<"Der Flaecheninhalt betraegt: "<<A<<"\n";
          }
          {
                              if (Wahl==4)
                              cout<<"Bitte geben Sie den Flaecheninhalt des ersten Dreiecks ein:\n";
                              double c;
                              cin>>c;
                              cout<<"Bitte geben Sie den Flaecheninhalt des zweiten Dreiecks ein:\n";
                              double d;
                              cin>>d;
                              double B;
                              B=c+d;
                              cout<<"Der Flaecheninhalt betraegt: "<<B<<"\n";
          }
    
          system ("Pause");
    }
    

    Leider funktioniert es nicht und ich weiß net warum. Wenn ich z.B. 2 eingebe dann kommt trotzdem 1 warum???



  • ups da steht net 4 natürlich soll da ne 2 hin allerdings ändert das nichts



  • Hallo

    Du must die If-bedingung vor den Block schreiben...

    if (Wahl==1)
    {
                              cout<<"Bitte geben Sie die erste Kathede ein:\n";
                              double a;
                              cin>>a;
                              cout<<"Bitte geben Sie die zweite Kathede ein:\n";
                              double b;
                              cin>>b;
                              double A;
                              A=(a*b)/2;
                              cout<<"Der Flaecheninhalt betraegt: "<<A<<"\n";
          }
    

    oder gleich switch verwenden.

    bis bald
    akari



  • deine klammern sind falsch. es wäre auch besser wenn wahl ein int ist.

    cin>>Wahl;
            if (Wahl==1)
            {
                              cout<<"Bitte geben Sie die erste Kathede ein:\n";
                              double a;
                              cin>>a;
                              cout<<"Bitte geben Sie die zweite Kathede ein:\n";
                              double b;
                              cin>>b;
                              double A;
                              A=(a*b)/2;
                              cout<<"Der Flaecheninhalt betraegt: "<<A<<"\n";
            }
            else if (Wahl==4)
            {
    
                              cout<<"Bitte geben Sie den Flaecheninhalt des ersten Dreiecks ein:\n";
                              double c;
                              cin>>c;
                              cout<<"Bitte geben Sie den Flaecheninhalt des zweiten Dreiecks ein:\n";
                              double d;
                              cin>>d;
                              double B;
                              B=c+d;
                              cout<<"Der Flaecheninhalt betraegt: "<<B<<"\n";
          }
    

    ich würde dir auch zu einem sitch case konstrukt raten

    [edit]
    vier sekunden zu langsam 😃



  • Hi,

    mal abgesehen davon, dass das alles etwas unübersichtlich werden wird, ist
    der Fehler, dass du die Klammern falsch setzt.

    Richtig

    // { <-diese weg
    if (Wahl==1)
    {
      cout<<"Bitte geben Sie die erste Kathede ein:\n";
     ....
    }
    


  • Nagut ich meine ob das nun unübersichtlich ist oder nicht ist erstmal egal. Aber es funktioniert immer noch net!

    #include <iostream>
    using namespace std;
    
    int main()
    {
          cout<<"*******************************************************************************"<<endl;
          cout<<"*                       Volumen und Flaechenberechnung                        *"<<endl;
          cout<<"*******************************************************************************\n\n"<<endl;
          cout<<"Flaecheninhalt\n";
          cout<<"[1]Rechtwinkliges Dreieck\n";
          cout<<"[2]Allgemeines Viereck\n";
          cout<<"[3]Trapez\n";
          cout<<"[4]Parallelogramm\n";
          cout<<"[5]Drachenviereck\n";
          cout<<"[6]Rechteck\n";
          cout<<"[7]Kreis\n";
          cout<<"[8]Quadrat\n";
          cout<<"\nVolumen\n";
          cout<<"[9]Wuerfel\n";
          cout<<"[10]Quader\n";
          cout<<"[11]Prisma\n";
          cout<<"[12]Kreiszylinder\n";
          cout<<"[13]Pyramide\n";
          cout<<"[14]Kreiskegel\n";
          cout<<"[15]Kugel\n";
          cout<<"\nBitte waehlen Sie!\n";
          float Wahl;
          cin>>Wahl;
          if (Wahl=1)
          {
                              cout<<"Bitte geben Sie die erste Kathede ein:\n";
                              double a;
                              cin>>a;
                              cout<<"Bitte geben Sie die zweite Kathede ein:\n";
                              double b;
                              cin>>b;
                              double A;
                              A=(a*b)/2;
                              cout<<"Der Flaecheninhalt betraegt: "<<A<<"\n";
          }
          if (Wahl=2)
          {
                              cout<<"Bitte geben Sie den Flaecheninhalt des ersten Dreiecks ein:\n";
                              double c;
                              cin>>c;
                              cout<<"Bitte geben Sie den Flaecheninhalt des zweiten Dreiecks ein:\n";
                              double d;
                              cin>>d;
                              double B;
                              B=c+d;
                              cout<<"Der Flaecheninhalt betraegt: "<<B<<"\n";
          }
    }
    


  • OK habs selber gesehen habe ein = vergessen! Danke für eure Hilfe!!!


Anmelden zum Antworten