zufallszahlen / ausgabe als double



  • hallo,

    habe ein Programm geschrieben, welches den Mittelwert von Zufallszahlen ausgeben soll.

    int *array = new int[anzahl];
    
        srand(time(0)); 
    
        //Generieren von Zufallszahlen
        for(int i=0; i<anzahl; i++)
        {
         array[i] = 1+(rand()%100);
        }
    
        //Berechnung des Mittelwertes
        int temp;
        for(int a=0; a<anzahl; a++)
        {
         temp += array[a];         
        }        
    
        double mittelwert = (temp / anzahl);
        cout<< endl;
        cout<< "Der Gesamtwert betraegt: " << temp <<endl;
        cout<< "Der Mittelwert betraegt: " << mittelwert <<endl;
        cout<< endl;
    

    jetzt bekomm ich immer integerwerte raus.
    Was habe ich falsch gemacht? Es sollte eigentlich ein double-Wert sein!



  • Du rechnest ja auch nur mit int-Werten, was erwartest du also? (solange keine double-Werte beteiligt sind, rechnet C++ mit integer-Arithmetik)

    Als Lösung könntest du entweder die Variable 'temp' als double anlegen oder bei der Rechnung in einen double-Wert casten ( double mittelwert = (double)temp / anzahl; ).



  • Pfui, ein C-Style Case, pfui Spinne! 😃

    Schöner:

    double mittelwert = double(temp) / anzahl;
    // oder
    double mittelwert = static_cast<double>(temp) / anzahl;
    

Anmelden zum Antworten