Brauche dringend Hilfe
-
Nichts für ungut, aber da stimmt so ziemlich garnichts

Ausserdem scheinst du C programmieren zu wollen, und nicht C++.Als Anfänger empfiehlt es sich erstmal ganz simple Programme zu schreiben, beispielsweise Hello World (natürlich selber schreiben, nicht einfach c&p).
Danach fängst du an Zahlen einzulesen, und diese wieder auszugeben.
Danach liest du mehrere Zahlen ein (in einer Schleife), addierst sie vlt. noch und gibst dann die Summe aus.
etc.etc.Fang nicht gleich mit so "schweren" Aufgaben an, wenn du wirklich gerade erst angefangen hast zu programmieren. Das frustriert erstens, und zweitens lernst du dabei nichts, wenn dir jetzt hier jemand die Lösung präsentiert.
-
Ja seh ich ein, aber ich muss auch sagen das mein dargestellter Code nur meinen geplanten aufbau beschreiben soll. Einige Sachen habe ich auch vorher rausgeschmissen
-
Trotzdem wäre ich dankbar da ich es ja selber nicht hin bekomme und es sich nicht um eine "unmögliche" Aufgabe handelt wenn mir jemand den Code hochladen könnte. Denn ich würde einfach gerne mal sehen wie man dieses Problem hätte lösen können.
Da ich wirklich versucht habe etwas "vernünftiges" auf die beine zu stellen. Einfachere Aufgaben hab ich schon gemacht und jetzt wollt ich es mal mit einer kombination aus den Aufgaben versuchen, aber.....Gruß Horst
-
Eine mögliche Lösung wäre:
#include <iostream> #include <vector> #include <algorithm> #include <iterator> int main( ) { std::vector<unsigned int> rangecount(5); unsigned int value; while (std::cin>>value && value>=1 && value<=20) ++rangecount[(value-1)/4]; std::copy(rangecount.begin(),rangecount.end(),std::ostream_iterator<unsigned int>(std::cout,"\n")); return 0; }Es werden nur Zahlen des Intervalls [1,20] akzeptiert, anderenfalls wird die Eingabe beendet.
-
xD es war klar dass früher oder später eine lösung kommt die mit stl und templates hantiert und die man als anfänger nicht verstehen kann...*freu*
coole sache@bauer horst:
da hast du dein lösung, zufrieden?
-
Eigentlich geht es mehr darum, dass kein Lehrer einem Schüler abkaufen würde, dass er eine solche Lösung selbst geschrieben habe, wenn dieser sie nicht im Detail erklären kann. Aber ich denke, das können wir besser: Lösungen, bei denen es unglaubwürdig ist, dass sie vom Schüler geschrieben wurden, die aber außerdem dermaßen absurd sind, dass sie niemand vor einer Lobotomie in Produktionscode verwenden würde. Beispiel:
#include <algorithm> #include <iostream> #include <iterator> #include <stdexcept> #include <vector> template<typename T> class range_counter { public: range_counter(std::vector<T> &counters, T min, T max, T step) : min_(min), max_(max), step_(step), counters_(counters) { if(min > max) throw std::out_of_range("min > max"); counters_.clear(); counters_.resize(typename std::vector<T>::size_type((max_ - min_) / step_ + 1)); } bool operator()(T const &x) { if(x < min_ || x > max_) return true; ++counters_[(x - min_) / step_]; return false; } private: T min_, max_, step_; std::vector<T> &counters_; }; int main() { std::vector<unsigned> counters; range_counter<unsigned> rcn(counters, 1, 20, 4); std::find_if(std::istream_iterator<unsigned>(std::cin), std::istream_iterator<unsigned>(), rcn); std::copy(counters.begin(), counters.end (), std::ostream_iterator<unsigned>(std::cout, "\n")); }Schauderhaft, nicht wahr?
Auf die Weise gibt es nicht nur für die Hausaufgabe ein "nicht abgegeben", sondern mit etwas Glück auch ein "da haben sie dich aber auf den Arm genommen". Vielleicht nimmt die Hausaufgabenbettelei dann etwas geringere Ausmaße an.
-
Danke erstmal an alle! Aber ich glaube ich habe selber einen Weg gefunden!? Mal sehen!
Die Zweite Lösung ist für mich jedenfalls eher nachvollziehbar.
Schüler-Lehrer? Hausaufgabenbettelei?
-
#include <iostream> #include <vector> void ausgeben(int A, int E, std::vector<int> ¶) { //intervall for(int i = 0; i < para.size(); ++i) { if(para[i] >= A && para[i] <= E) { std::cout << para[i] << " "; } } std::cout << "\n"; } int main() { using namespace std; vector<int> zahl; for(int i = 0;; ++i) { zahl.resize(i+1); cin >> zahl[i]; if(zahl[i] < 0 || zahl[i] > 20) { cerr << "Zahl nicht im Bereich!\n"; zahl.erase(zahl.end()-1); } if(zahl[i] == 0) break; } cout << "1-5:\n"; ausgeben(0, 5, zahl); cout << "6-10:\n"; ausgeben(6, 10, zahl); cout << "11-15:\n"; ausgeben(11, 15, zahl); cout << "16-20:\n"; ausgeben(16, 20, zahl); }
-
Die Lösung ist nicht nur unschön, sondern wirft auch noch die ganze Didaktik des Threads über den Haufen.
Hättest du den Thread oder die Foren FAQ wenigstens überflogen, dann wäre dir aufgefallen, dass fertige Lösungen zu Problemen, die wie Hausaufgaben aussehen, nicht gern gesehen werden.
-
Ich weiß das schon. Er hat nach einer Lösung für ein einfaches Problem gefragt, ich hab eine 2 Minuten Sache hingepfeffert und damit ist die Sache gegessen.
Den Thread hab ich nicht überflogen sondern durchgelesen. Ihr zeigt immer mit aufwändiger Ironie, das er selbst was tun soll. Anstatt ihm einfach zu sagen: "Wenn du eine komplettlösung brauchst, dann geh woanders hin. Zeig Code und wir werden helfen - ohne Code ignorieren wir dich." Aber diese verarsche mit diesen für einen Anfänger unverständlichen Code regt mich einfach auf. Das wollte ich eben mal kurz unterbinden. Das nächste mal einfach sagen, ohne Code keine Hilfe..