array groesste Zahl raus filtern?
-
jojo ^^ war bissl abgelenkt undso... *ausredesuch*.
Ist hoffentlich jetzt behoben
Und das mit den negativen Zahlen... naja ich ging mal vom Lottoprogramm aus, da gibts so wenig davon
-
Sollte mich wundern, wenn das so kompiliert. Du meinst sizeof(zahlen)/sizeof(int).
-
Noch ne verrückte Idee um doppelte zu vermeiden.
1 Erzeuge einen Vektor mit 50 Elementen, setzte alle Werte auf Null, benutze den Index 0 nicht. 2 Erzeuge eine Zählvariable unt setze sie auf 0; 3 Erzeuge Zufallszahlen aus dem Bereich 1..49. 4 Wenn das entsprechende Element im Vektor 0 ist setze den vektor auf 1 und erhöhe die Zählvariable um 1 5 Wenn das entsprechende Element im Vektor 1 fange wieder bei 2 an 6 Wenn die Zählvariable 6 ist bist du fertig 7 Gib die Indices des Vektors für die der Inhalt 1 aus
Somit ist die Hausaufgabe erledigt und du hast 6 Lottozahlen aufsteigende sortiert ausgegeben.
Nachteil: Array mit 50 Elementen wovon das Element 0 nicht genutzt ist.
Vorteil: keine ''umständlichen'' Suchaktionen ob die Zahl schon existiert.
-
Oder aber:
Liste mit 49 Werten füllen, zufällig einen Eintrag auswählen, speichern und aus der Liste löschen, nächsten Eintrag zufällig auswählen etc.
Am besten die ausgewählten Zahlen in nen Vector rein und dann mit sort sortieren... fertig.
-
#include <algorithm> //... int *max = std::max_element(array, &array[array_size]);
-
#include <algorithm> int zahlen[49]; for (unsigned i = 0; i < 49; ++i) zahlen[i] = i; std::random_shuffle(zahlen, zahlen + 49); int auswahl[6]; std::copy(zahlen, zahlen + 6, auswahl);
Solche Hausaufgaben macht man gerne :p
-
hey, fast hätte ich dasselbe gepostet
-
std::set<int> lottozahlen; while (lottozahlen.size() < 6) { lottozahlen.insert(std::rand()); }
Nur um mal ne Alternative zu posten.
-
Da fehlt allermindestens noch ein "% 49 + 1" :p
Aber interessanter Ansatz
-
Ups. Ja, das kann sich jeder selbst dazu denken