Problem mit Programm das Durchschnitt ausrechnet Newbie



  • Hallo zusammen

    Ich habe mir mal ein kleines Programm geschrieben, das den durchschnitt ausrechnet:

    #include <iostream>
    
    using namespace std;
    
    int nAnzahl;
    float Average ();
    
    int main()
    {
        cout << "Willkommen bei Average 1.0\n"  << endl;
        cout << "Bitte geben sie zuerst die Anzahl der Zahlen an, aus denen sie\nden Durchschnitt berechnen wollen: ";
        cin  >> nAnzahl;
        cout << endl;
        double nDurchschnitt = Average();
        cout << "Der Durchschnitt der Zahlen betraegt: " << nDurchschnitt << endl; 
        system("PAUSE");
    }
    
    float Average ()
    {
        int nSumme=0;
    
        for(int x=0; x<nAnzahl; x++)
        {
            int nZahl;
            cout << "Bitte geben sie eine Zahl ein: ";
            cin >> nZahl;
            cout << endl;
            nSumme = nZahl + nSumme;
        } 
        return nSumme / nAnzahl;
    }
    

    Leider gibt es immer nur eine Ganzzahl zurück.
    Könnte mir jemand sagen an was das liegt??

    Wie schon oben geschrieben, bin ein absoluter Newbie



  • int = integer = ganzzahl
    für "kommazahlen" nimmt man double.
    also double nSumme = 0; und double nZahl;
    dann kannst du auch kommazahlen eingeben.



  • Hi,

    du führst eine Ganzahldivision aus:

    return nSumme / nAnzahl;
    

    Es ist eine Eigenheit von C/C++, dass der Compiler immer den kleinsten Datentyp von einer Operation mit 2 Variablen nimmt.

    Lösung: Einfach eine der beiden Variablen in der Operation dazu "zwingen", eine gebrochene Zahl zu sein.

    return nSumme / (flaot)nAnzahl;
    

Anmelden zum Antworten