Wo liegt der Fehler im Code?



  • Hallo zusammen,

    mein Programm rechnet nicht bis zum Schluss aus.
    Wo liegt der Fehler?
    Vielen Dank im Voraus!
    Viele Grüße Waldemar.

    #include <iostream>
    using namespace std;
    main()
    {
    float l,d,a,ro,r;
    int eingabe;
    cout<<"\nEingabe Durchmesser:"; cin>>d;
    cout<<"\nEingabe Laenge:"; cin>>l;
    cout<<"\nAuswahl Material";
    cout<<"\n Aluminium-1";
    cout<<"\n Kupfer-2\n";
    cin>>eingabe;
    switch(eingabe)
    {
    case 1: ro=0.024e-6;
    break;
    case 2: ro=0.018e-6;
    break;
    default: cout<<"\n Falsche Eingabe";

    a= (3.1415/4)*d*d;
    r= (ro*l)/a;
    cout<<"\n\n"<<r<<"\n\n";
    }
    system ("PAUSE");
    

    }



  • Kupfer.



  • Wie meinst du es?
    Was müsste ich ändern?
    Könntest du bitte die falschen Stellen im Text rot markieren?
    Vielen DAnk!



  • Benutze deinen Debugger.



  • @Waldemar1982 Ich habe deinen Code mal eingerückt. Hoffentlich erkennst du das Problem.

    #include <iostream>
    using namespace std;
    
    int main()
    {
    	float l,d,a,ro,r;
    	int eingabe;
    	cout<<"\nEingabe Durchmesser:"; cin>>d;
    	cout<<"\nEingabe Laenge:"; cin>>l;
    	cout<<"\nAuswahl Material";
    	cout<<"\n Aluminium-1";
    	cout<<"\n Kupfer-2\n";
    	cin>>eingabe;
    	switch(eingabe)
    	{
    		case 1:
    			ro=0.024e-6;
    			break;
    		case 2:
    			ro=0.018e-6;
    			break;
    		default:
                            // Default-Zweig (Eingabe !=1 und != 2):
    			cout<<"\n Falsche Eingabe";
    			a= (3.1415/4)*d*d;
    			r= (ro*l)/a; // a könnte 0 sein
    			cout<<"\n\n"<<r<<"\n\n";
    			break;
                            // Ende Default-Zweig
    	}
    	system ("PAUSE");
    }
    


  • Bitte schreibe in eine Zeile vor Deinen Code ``` und in eine Zeile nach Deinem Code ```. Alternativ markiere Deinen Code und klicke auf das </> in der Toolbar über dem Texteingabefeld. Du kannst Deine Beiträge auch nachträglich bearbeiten. Den Menüpunkt "Bearbeiten" findest Du hinter dem Drei-Punkte-Menü rechts unter Deinem Beitrag. Danke.



  • @yahendrik Danke für die Antwort. Aber was müsste ich ändern,damit Programm ausrechnet?
    Habe Code umgeschrieben und so funktioniert es:

    #include <iostream>
    using namespace std;
    main()
    {
    float l,d,a,ro,r,pi=3.1415;
    
    int eingabe;
    cout<<"\nEingabe Durchmesser:"; cin>>d;
    cout<<"\nEingabe Laenge:"; cin>>l;
    a= (pi/4)*d*d;
    cout<<"\nAuswahl Material";
    cout<<"\n Aluminium-1";
    cout<<"\n Kupfer-2\n";
    
    cin>>eingabe;
    switch(eingabe)
    {
    	case 1: cout <<(0.024e-6*l)/a;
    	break;
    	case 2: cout <<(0.018e-6*l)/a;
    	break;
    	default: cout<<"\n Falsche Eingabe";
    	
    	
    	cout<<"\n\n"<<r<<"\n\n";
    	}
    	system ("\nPAUSE");
    	
    	 
    }
    


  • Was müsste ich ändern, damit case 1 und case 2 die Werte für ro zuordnen?



  • @Waldemar1982 sagte in Wo liegt der Fehler im Code?:

    Habe Code umgeschrieben und so funktioniert es:

    Denk bitte jetzt mal gaaaanz scharf nach wie sich hier der Programmablauf zu Deiner anderen Version geändert hat.



  • @Swordfish sagte in Wo liegt der Fehler im Code?:

    @Waldemar1982 sagte in Wo liegt der Fehler im Code?:

    Habe Code umgeschrieben und so funktioniert es:

    Denk bitte jetzt mal gaaaanz scharf nach wie sich hier der Programmablauf zu Deiner anderen Version geändert hat.

    Und wenn das nicht hilft, guck Dir noch mal gaaaanz genau an, wie case/switch/default genau funktioniert.



  • Ich habe die geschweiften Klammern von Case höher gesetzt, also direkt nach case 2 und default.
    Jetzt läuft es!



  • Welches C++ Programm empfielt Ihr für Anfänger?
    Ich habe momentan Dev-C++5.11 .



  • @Waldemar1982
    Ich mag Codeblocks.
    Der QTCreator ist aber auch nicht übel.

    PS: bei beiden wird dir auf Wunsch ein fertig eingerichteter Compiler mitgeliefert. Also eher anfängerfreundlich.



  • Vielen Dank!


Log in to reply