except Geschrieben 9. Mai 2009 Geschrieben 9. Mai 2009 hey ich bin grade dabei c++ in der schule zu lernen. wir haben eine aufgabe bekommen die ich nicht hinbekomme und ich bräuchte einen lösungsansatz. aufgabe: schreiben Sie ein c++ programm, welches werte einliest aus diesen werten die summe und den mittelwert bildet. die eingabe der zahl 0 soll als abbruchkriterium für die eingabe dienen. die ausgabe des programms soll die anzahl der werte, deren summe und den mittelwert umfassen. beispiel: zahl 1 : 1 zahl 2 : 2 zahl 3 : 3 zahl 4 : 0 abbruch so nun zu meinem problem... die rechnung ist natürlich nciht das problem aber ich habe keine ahnung wie ich die zahlen einlesen soll da ich ja eigentlich für jede zahl eine variable bereitstellen muss. da ich nicht weiß wieviele zahlen eingegeben werden kann ich die ja auch vorher auch nicht anlegen. Frage -> wie geht das ich hoffe ich hab meine frage nicht zu umständlich gestellt schonmal danke für eure hilfe
robotto7831a Geschrieben 9. Mai 2009 Geschrieben 9. Mai 2009 Hallo, mit scanf die Zahlen jeweils einlesen und dann in eine std::list oder std::vector packen und nach der Abbruchbedingung entsprechend wieder ausgeben. Frank
Klotzkopp Geschrieben 9. Mai 2009 Geschrieben 9. Mai 2009 ch habe keine ahnung wie ich die zahlen einlesen soll da ich ja eigentlich für jede zahl eine variable bereitstellen muss.Nein, musst du nicht. Es reicht doch, wenn du die Summe nachhältst, und wieviele Zahlen eingegeben wurden.
except Geschrieben 10. Mai 2009 Autor Geschrieben 10. Mai 2009 (bearbeitet) wo bei ein problem hab ich noch... der mittelwert wird immer falsch berechnet und ich hab keine ahnung woran das liegt.. ich poste euch mal das was ich geschrieben hab, wirkt auf euch wahrscheinlich noch recht unstrukturiert aber ich lerne ja noch // aufgabe_05.cpp // Datum 09.05.2009 #include <iostream> using namespace std; int main() { char janein; do { int zahl; int anzahl = 1; int summe = 0; double mittelwert; cout << "Summe und Mittelwertsberechnung aller eingegebenen Zahlen" << endl << endl; cout << "Bitte geben Sie alle in die Berechnung enizubeziehenden Zahlen ein." << endl; cout << "Eingabe von 0 beendet die Eingabe." << endl << endl; do { cout << "Zahl " << anzahl <<" : "; cin >> zahl; summe = summe + zahl; anzahl++; } while(zahl != 0); mittelwert = summe / (anzahl - 1); cout << endl; cout << "Anzahl : " << anzahl - 2 << endl; cout << "Summe : " << summe << endl; cout.setf(ios::fixed,ios::floatfield); cout.precision(3); cout << "Mittelwert: " << mittelwert << endl; cout << endl << "Programm nochmals ausfuehren? [J/N] "; cin >> janein; } while(janein == 'j'); return(0); } Bearbeitet 10. Mai 2009 von except
Klotzkopp Geschrieben 10. Mai 2009 Geschrieben 10. Mai 2009 An dem Ausdruck summe / (anzahl - 1) sind nur ints beteiligt, das Ergebnis ist also wieder ein int - es findet eine Ganzzahldivision statt, bei der alle Nachkommastellen des Ergebnisses wegfallen. Es sollte schon ausreichen, wenn du statt dessen summe / (anzahl - 1.0) schreibst.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden