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;