c++ Rechner Problem



  • Hallo zusammen!

    Ich programmiere für ein Schulprojekt einen Rechner, doch leider funktioniert eine Funktion nicht ganz so, wie ich möchte 😞

    Kann sich das jemand vielleicht angucken? 😉

    {
    float loesung;
    float faktor;
    system("cls");
    cout << " Multiplikation"<<endl;
    cout << "-------------"<<endl;
    cout << " Wieviele Faktoren sollen erstellt werden? ";
    cin >> anzahl;
    cout <<endl;

    for (int i=1; i<=anzahl; i++)
    {
    cout<<" "<< i <<". Faktor eingeben: "<<flush;
    cin>>eingabezahl;
    (eingabezahl * 1 * loesung) == loesung;
    }
    cout <<endl;
    cout<<" Resultat: "<<loesung<<endl
    }

    Ich hab ein Bisschen rumprobiert und bin leider zu keiner Lösung gekommen. Das Problem liegt unter der for-Schleife.

    Ich bin für jede Hilfe dankbar!

    Freundliche Grüsse

    Shivan



  • Also erstmal bitte benutz die C++ Tags, und dann erklär mir mal bitte was du mit dieser Zeile in deiner for Schleife erreichen willst.

    (eingabezahl * 1 * loesung) == loesung;
    


  • Es soll zuerst fragen, wieviele Faktoren man möchte. Als nächstes wird man aufgefordert die Faktoren einzugeben. Also ein Beispiel:

    Wieviele Faktoren möchtest du haben? --> 3

    1. Faktor: 10
    2. Faktor: 3
    3. Faktor: 5

    Berechnung: 10 * 3 * 5
    Ausgabe: 150



  • Einge ganz andere Frage, kennst du dich aus mit Dev-C++? Ich suche schon ganz verrückt nach der Option, wo man Klammernpaare im Zusammenhang anzeigen lassen kann. Hab mir gedacht, dass du das vielleicht gerade weisst 😉



  • int anzahl;
    
    float loesung = 0; // wichtig, dass = 0 gesetzt wird!
    float faktor;
    cout << " Multiplikation"<<endl; 
    cout << "-------------"<<endl; 
    cout << " Wieviele Faktoren sollen erstellt werden? "; 
    cin >> anzahl; 
    cout <<endl;
    
    for (int i=0; i<anzahl; i++) //generell beginnt man Schleifen mit 0
    {                            //solltest du dich schonmal dran gewöhnen
        cout<<" "<< i+1 <<". Faktor eingeben: "<<endl; //flush ist unnötig
        cin>>eingabezahl; 
        faktor = faktor * eingabezahl; //oder kurz: faktor *= eingabezahl
        //der == operator vergleich nur, hat also in einer rechnung nix zu suchen
    }
    
    cout <<endl; 
    cout<<" Resultat: "<<loesung<<endl;
    


  • Ist natürlich schwachsinn, was ich geschrieben hab. So muss es lauten

    int anzahl; 
    
    double loesung = 1; // wichtig, dass = 1 gesetzt wird!
    double faktor; 
    cout << " Multiplikation"<<endl; 
    cout << "-------------"<<endl; 
    cout << " Wieviele Faktoren sollen erstellt werden? "; 
    cin >> anzahl; 
    cout <<endl; 
    
    for (int i=0; i!=anzahl; ++i) //generell beginnt man Schleifen mit 0 
    {                              //solltest du dich schonmal dran gewöhnen 
        cout<<" "<< i+1 <<". Faktor eingeben: "<<endl; //flush ist unnötig 
        cin>>faktor; 
        loesung = loesung * faktor; //oder kurz:  loesung *= faktorl 
        //der == operator vergleich nur, hat also in einer rechnung nix zu suchen 
    }
    
    cout <<endl; 
    cout<<" Resultat: "<<loesung<<endl;
    


  • Boah vielen vielen Dank 😃
    Ich werde es gleich mal ausprobieren 🙂



  • Danke, funktioniert super!! 🙂



  • Ich habe wieder ein Problem und zwar möchte ich das Gleiche wie vorher machen nur als Division. Der Unterschied bei der Division ist, dass man zuerst den Dividenden angeben soll. Ich hab ein Bisschen rumprobiert aber komme irgendwie nicht auf die Lösung, einige Resultate stimmen, einige nicht.

    Wär super, wenn mir jemand helfen könnte!

    {
             double loesung = 1;
             double divisor;
             double dividend;
             system("cls");
             int anzahl;
             cout << " Division"<<endl;
             cout << "----------"<<endl;
             cout << " Geben Sie zuerst den Dividend ein: ";
             cin >> dividend;
             cout <<endl;
             cout << " Wieviele Divisoren sollen erstellt werden? ";
             cin >> anzahl;
             cout <<endl;
             loesung = dividend / divisor;
                         for (int i=0; i!=anzahl; ++i)
                         {                              
                            cout<<" "<< i+1 <<". Divisor eingeben: "; 
                            cin>>divisor;
                            loesung = loesung / divisor;
                            cout <<endl;
                         }
                         cout<<" Resultat: "<<loesung * 10<<endl;
    }
    

    Das Ganze sollte dann auf der Console etwa so aussehen:

    Division
    --------

    Geben Sie zuerst den Dividend ein: --> 100

    Wieviele Divisoren sollen erstellt werden? --> 2

    1. Divisor: 10
    2. Divisor: 2

    Resultat: 5

    Ich hoffe ihr könnt mir helfen, irgendwie klappt bei mir das Ganze nicht so, da ich zuerst den Dividenden angeben muss..

    Bin für jede Hilfe dankbar! 🙂

    MfG Shivan



  • Ist niemand da, der mir helfen kann? Ist für mich sehr wichtig..



  • In Zeile 16 und 20 fehlt etwas.. (kleiner Tipp es sind <<)



  • #include <iostream>
    #include <math.h>
    using namespace std;

    int main()
    {
    system("cls");
    float zahl;
    cout << " Runden auf ganze Zahlen"<<endl;
    cout << "-------------------------"<<endl;
    cout << " Geben Sie die Zahl ein, die auf die naechste Ganzzahl gerundet werden soll: ";
    cin >> zahl;
    cout << endl;
    if(zahl >= 0)
    {
    cout << "Die eingegebe Zahl wurde von "<< zahl << "auf " 💡 << 💡 floor(zahl + 0.5) << " gerundet.";
    }
    else
    {
    cout << "Die eingegebe Zahl wurde von "<< zahl << "auf " 💡 << 💡 ceil(zahl - 0.5) << " gerundet.";
    }
    }

    << hat gefehlt



  • Jo danke euch beiden, ich war wohl blind 😞 hab immer nach fehlenden Strichpunkten gesucht..


Anmelden zum Antworten