Durchschnitt ausrechen , wenn auch "0", bzw nichts eingegeben werden kann
-
Hallo,
prinzipiell sagt der Titel schon alles, versucht hab ich es folgendermaßen:
#include <iostream> using namespace std; float mValue(int a, int b, int c, int d, int e) { int sum = a+b+c+d+e; int i=1; if(a!=0) i++; if(b!=0) i++; if(c!=0) i++; if(d!=0) i++; if(e!=0) i++; float Mvalue = (float)sum/i-1; return Mvalue; } int main() { cout<<mValue(3,0,3,1,5)<<endl; system("Pause"); return 0; }Es funktioniert nicht ganz; ein falscher wert wird ausgegeben, weiss aber auch nicht wie dieser falsche wert berechnet wurde.
Des is bestimmt n ganz blöder und zugleich einfacher Fehler.Für folgendes brauch ich es:
ein Benutzer kann maximal 5 werte eingeben und dann deren Mittelwert ausgeben lasse, maximal heisst aber auch, dass er nur 3 eingeben kann, wie ich diesen fall jetzt bearbeiten soll weiß ich nicht.Vielen Dank !
-
Lerne was arrays/vectoren sind.
Punkt vor Strich, aber nicht durch 0 teilen.
-
Leg doch eine Abbruchbedingung fest, bei der keine weiteren Zahlen mehr eingegeben werden (z.B. Eingabe des Wertes 0).
Du solltest die Werte am besten in einem STL-Container speichern, um sie dann flexibel verwalten zu können. Dann brauchst du auch nicht fünf Variablen.
-
@nexus: ja macht sinn des mit der Abbruchbedingung. Vielen vielen Dank!
Und was ist jetzt fehlerhaft an meinem Code?
-
Punkt vor Strich
-
Wie gesagt, arbeite mit Containern. Du solltest dir vielleicht einmal die STL genauer anschauen...
-
punkt vor strich, ok jetzt hab ichs gesehen, danke!
STL, jup setz ich mich auch mal an!
-
Zur Einführung in die Standard Template Library gibts in diesem Forum sehr gute Artikel:
1) Container
2) Iteratoren und Algorithmen
3) Hilfsklassen und Erweiterungen
-
der Durchschnitt der Werte 5 und 0 ist 2.5!!!
Dein Code produziert aber 5
-
am besten gleich ne boost-template-stl-container library, multithreaded-generic, um 5 float werte zu speichern.
schon mal das wort array gehört ?
mfg
-
!=lol schrieb:
schon mal das wort array gehört ?

Du meinst sicher
boost::array? :pIm Ernst: Arrays können ja nützlich sein für solche kleinen Dinge. Nur tendiert man schnell zu grösseren Sachen. Wenn dann noch dynamische Speicherverwaltung dazu kommt und man alles selber erledigt, passieren schnell Fehler - mal abgesehen von den Möglichkeiten, die man sich jedes Mal neu programmieren muss.
-
Bei sowas hat ein einfaches Array keine Vorteile. Oder welche sollen das sein? Außer das es auch ein Anfänger der 2 Wochen programmiert vesteht, seh ich nix.