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;