Programm für Mittelwertsberechnung



  • Falls Du die Zahlen aus irgendeinem Grund trotzdem in einem Array zwischenspeichern willst, lässt sich das ohne Probleme mittels Reservierung von Heap-Speicher realisieren:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int anzahl = 0;
        int *zahlen;
    
        cout << "Wieviele Zahlen?" << endl;
        cin >> anzahl;
    
        zahlen = new int[anzahl]; //Speicher für das Array auf dem Heap reservieren
    
        //zahlen einlesen und damit rummachen
    
        delete [] zahlen; //auf dem Heap reservierten Array-Speicher freigeben
    }
    


  • #include <iostream>
    using namespace std;
    
    int main()
    {
        int n=0,anzahl,zahl,summe,mittel;
        cout << "Mittelwertsberechnung" << endl;
        cout << "Wieviel Zahlen moechten Sie eingeben?: ";
        cin >> anzahl;
        if (anzahl <= 0)
           cout << "Fehler! Bitte neustarten!";
        else
        do
        {
            cout << "Bitte Zahl eingeben: ";
            cin >> zahl;
            summe=+zahl;
            n++;
        }
        while (n==anzahl);
        mittel=summe/anzahl;
        cout << "Der Mittelwert betraegt: " << mittel;
        return 0;
    }
    

    irgendwie will das noch net so ganz...



  • #include <iostream>
    using namespace std;
    
    int main(){
    
    int Zahl = 0;
    int Gesamt = 0;
    
    do {
    cout << "\nZahl eingeben: ";
    cin >> Zahl;
    Gesamt += Zahl;
    }
    while (Zahl < 100; Zahl++);{
    cout << "Wieviele Zahlen sollen eingelesen werden?" << endl;
    }
    
    return 0;
    }
    

    hab jetzt ned compiliert.. funzt es?



  • den ersten fehler hab ich entdeckt in meinem code

    while (n!=anzahl)
    

    muss es heissen ^^ aber danach beendet er das programm und macht nicht weiter nachdem die schleife abgelaufen ist



  • andy_cux schrieb:

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int n=0,anzahl,zahl,summe,mittel;
        cout << "Mittelwertsberechnung" << endl;
        cout << "Wieviel Zahlen moechten Sie eingeben?: ";
        cin >> anzahl;
        if (anzahl <= 0)
           cout << "Fehler! Bitte neustarten!";
        else
        do
        {
            cout << "Bitte Zahl eingeben: ";
            cin >> zahl;
            summe=+zahl;
            n++;
        }
        while (n==anzahl);
        mittel=summe/anzahl;
        cout << "Der Mittelwert betraegt: " << mittel;
        return 0;
    }
    

    irgendwie will das noch net so ganz...

    Das

    while(n==anzahl);
    

    wird so nicht funktionieren weil du darauf prüfst ob es gleich anzahl ist.
    und es heißt auch nicht =+ sonder +=



  • #include <iostream>
    using namespace std;
    
    int main()
    {
        int n=0,anzahl,zahl,summe=0,mittel;
        cout << "Mittelwertsberechnung" << endl;
        cout << "\nWieviel Zahlen moechten Sie eingeben?: ";
        cin >> anzahl;
        if (anzahl <= 0)
           cout << "Fehler! Bitte neustarten!";
        else
        do
        {
            cout << "Bitte Zahl eingeben: ";
            cin >> zahl;
            summe+=zahl;
            n++;
        }
        while (n!=anzahl);
        mittel=summe/anzahl;
        cout << "Der Mittelwert betraegt: " << mittel;
        return 0;
        system("PAUSE");
    }
    

    hm nach der eingabe der zahlen schließt das programm 😞 und das system pause ist nur drin da ich hier auf der arberit nur dev c++ hab und das hat die tolle funktion "press any key to close the programm" wie bei borland nich sondern beendet sofort... aber trotzdem geth dis prog noch net und ich hab keine ahnung wieso



  • ok es funzt! das system("Pause") musste nur vor dem return 0;



  • Grüßgott..

    Meine lautet:
    Wieso man in der DO Schleife die Variable n inkrementiert?
    n++;



  • The_Davinci_Decode schrieb:

    Grüßgott..

    Meine lautet:
    Wieso man in der DO Schleife die Variable n inkrementiert?
    n++;

    Damit die Schleife funktioniert, also damit die Schleife nur so lange läuft bis n gleich anzahl ist

    while (n!=anzahl);
    

    oder was meinst du mit

    The_Davinci_Decode schrieb:

    Meine lautet:

    ?



  • ^^

    meinte eigentlich "Meine Frage lautet:"

    naja ich check den Sinn garnicht. Wieso soll n nicht gleich anzahl sein?



  • Die Schleife soll solange laufen, bis 'anzahl' Zahlen eingegeben wurden. Also zählt man von 0 aus durch, wieviele Zahlen schon da waren.



  • Es wird beim Programmstart vom Benutzer abgefragt wie viele Zahlen eingebenen werden sollen. Dieser Wert wird in der Variable "anzahl" gespeichert. Die Varialble "n" wird bei jedem Schleifendurchlauf um 1 mit n++ erhöht, und das halt solange bis n gleich anzahl ist und somit sind soviele Zahlen eingegeben worden wie der Benutzer am anfang haben wollte.

    EDIT: Oder einfacher gesagt wenn "n" von Anfang an gleich "anzahl" wäre, dann würde die Schleife nie ausgeführt und man könnte keine Zahlen eingeben.



  • aaahh, so ist das.. vielen thx. verstehe schon


Anmelden zum Antworten