Mit array Zahlen einlesen Mittelwert ausgeben



  • markuswenczel schrieb:

    SeppJ schrieb:

    Wenn du meinen Tipp mit dem Einrücken berücksichtigen würdest, dann würdest du den Fehler finden.

    ...
    

    Daran solltest du arbeiten. Eine einheitliche Einrückung ist extrem wichtig für die Lesbarkeit und Wartbarkeit!


  • Mod

    markuswenczel schrieb:

    SeppJ schrieb:

    👍

    Darf ich aber vorsichtig fragen: Wirklich selbst gemacht, ganz ehrlich?

    ja aber ich verstehe nicht was da wieder nicht stimmt,
    ich weiß das die Variable sum den Wert nicht behält aber wieso verstehe ich noch nicht,

    Oh, hatte gar nicht gesehen, dass es immer noch falsch ist, auf den ersten BLick sah es richtig aus. Überleg mal, welche und wieviele Zahlen du für die Summe addierst. Und versuch mal mit einem Debugger nach solchen Fehlern zu suchen, du bist auf der falschen Fährte mit dem sum. Geh das Programm Schritt für Schritt durch und achte da drauf, wann die Variablen andere Werte annehmen als sie sollten.

    EIne Frage zum Semikolon ';', wenn ich es nach einer Schleife verwende wohin springt das Programm dann mir ist nur aufgefallen das wenn ich sie verwende und wenn nicht das Programm ein ganz anderes Verhalten hat.

    Eine Schleife führt eine Anweisung immer wieder aus. Diese Anweisung kann auch ein Anweisungsblock sein oder auch eine leere Anweisung.



  • SeppJ schrieb:

    Dein Programm bis hier hin ist ... nicht so toll. Da sollten wir Schritt für Schritt durchgehen.

    Als ersten Schritt wollen wir die Werte einlesen. Das geht bei dir gründlich schief, in jedweder Hinsicht.

    Zunächst einmal überlege dir, ob du wirklich beliebig viele Werte aufnehmen möchtest. Das wäre in C++ sehr einfach, aber Arrays sind das falsche Mittel, da würde man einen std::vector nehmen. Das ist so ähnlich wie ein Array, aber mit veränderlicher Größe.
    Was derzeit bei dir beim Einlesen schiefgeht: z ist immer gleich. Du schreibst immer an die gleiche Stelle. Du musst das z irgendwie erhöhen. Und falls du bei statischen Arrays bleibst, dann pass auf, dass du nicht über die Länge des Arrays hinaus schreibst. Wenn du deinen Code ausbessern möchtest, achte auf diese Punkte. Falls du vector benutzen möchtest (würde ich empfehlen, ist insgesamt einfacher), dann guck in deinem Lehrbuch mal dazu.

    Danke für deine großartige Geduld
    hoffe das passt jetzt so habe die Lösung gepostet und den Titel nicht verändert
    LG
    Markus


  • Mod

    markuswenczel schrieb:

    Danke für deine großartige Geduld
    hoffe das passt jetzt so habe die Lösung gepostet und den Titel nicht verändert

    Jetzt reißt mir aber die Geduld. Zum x-ten Male verunstaltest du mit Absicht den Thread, so dass ihn niemand mehr lesen kann. Hilf dir in Zukunft doch alleine.



  • SeppJ schrieb:

    Ich kann dir helfen, aber nur wenn du versprichst, dass du dieses mal deinen Eröffnungsbeitrag nicht sinnentstellend veränderst, nachdem die Frage beantwortet wurde. Das stört den Forenbetrieb ungemein, wenn du das machst.

    sorry
    habe es jetzt wieder auf die originalmeldung umgestellt,
    wohin soll ich die lösung denn dann schreiben einfach am Schluss nehme ich mal an.
    lg
    markus



  • SeppJ schrieb:

    markuswenczel schrieb:

    Danke für deine großartige Geduld
    hoffe das passt jetzt so habe die Lösung gepostet und den Titel nicht verändert

    Jetzt reißt mir aber die Geduld. Zum x-ten Male verunstaltest du mit Absicht den Thread, so dass ihn niemand mehr lesen kann. Hilf dir in Zukunft doch alleine.

    ich mache das nicht mit Absicht aber ich soll doch wenn ich die Lösung habe das Ergebnis posten ich dachte am Anfang ist das am besten dann sieht es jeder
    verstehe ich darf den ersten Thread nicht verändern

    sorry benutze zum ersten mal ein forum
    lg
    markus



  • markuswenczel schrieb:

    hoffe das passt jetzt so habe die Lösung gepostet ...

    markuswenczel schrieb:

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    int main(){
        int x,zahl=1,sum=0,anzahl=0;
        double ergebnis,median,s;
        int arr[50];
        int i=0;
    
        do{
            cout<<"Bitte Zahlen eingeben"<<endl;
            cin>>zahl;
    
            arr[i]=zahl;
            anzahl++;
            i++;
        }while(i<50 && zahl!=0);
    
        for(int j=0;j<anzahl;j++){
            sum=sum+arr[j];            
        }
    
        ergebnis=sum/anzahl;
        cout<<"Mittelwert= "<<ergebnis<<endl;
    
        if(anzahl%2!=0){
            median=(anzahl+1)/2;
        }
        else if(anzahl%2==0){          
            median=0.5*((anzahl/2)+((anzahl/2)+1));
        }
    
        x=(int)median;
        cout<<"Median= "<<arr[x-1]<<endl;
    
        ergebnis=((1/(double)anzahl)*(double)sum);
        s=sqrt(ergebnis);
        cout<<"Standardabweichung= "<<s<<endl;
    
        cin>>zahl;
    }
    

    die Berechnung von Standardabweichung und Median ist grob falsch.



  • hoffentlich ist das jetzt richtig,
    Problem gelöst danke sehr
    werde mich bemühen in Zukunft besser zu posten

    An SeppJ
    Werde den Eröffnungsbeitrag nie wieder ändern versprochen.

    Ich dachte das ist der Sinn das man am Ende der Fragestellung die Lösung vorne hinschreibt damit es sofort ersichtlich ist das es gelöst ist.

    Der Verlauf ist wichtig ok verstanden.

    lg
    markus 🙂



  • markuswenczel schrieb:

    Ich dachte das ist der Sinn das man am Ende der Fragestellung die Lösung vorne hinschreibt damit es sofort ersichtlich ist das es gelöst ist.

    Du kannst sehr gerne in den Titel des ersten postings dazuschreiben, dass es gelöst ist. Aber bitte nicht den Text des Postings veränden, damit wie gesagt andere Leute mit dem gleichen Problem den Thread auch noch nachvollziehen können.



  • Ich weiß, der Beitrag ist schon lange her, aber weil ich gerade die selbe Aufgabenstellung habe und man den Beitrag als erstes bei Google findet wollt ich nur sagen das der Abweichungswert bei dem Code nicht die richtige Formel hat.


Anmelden zum Antworten