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 Zitieren
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 Zitieren
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. Zitieren
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 Zitieren
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. Zitieren
except Geschrieben 12. Mai 2009 Autor Geschrieben 12. Mai 2009 Super danke jetzt klappt alles Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.