Lottogen, doppelte Zahlen vermeiden
-
gehört das nicht ins c++ forum?
-
c++ forum schrieb:
gehört das nicht ins c++ forum?
Vermutlich, ja

-
Es ist doch im C++ Forum.

-
Hallo,
Phisherman schrieb:
Es ist doch im C++ Forum.

es gibt auch noch das hier:
http://www.c-plusplus.net/forum/viewforum-var-f-is-15.html

MfG,
Probe-Nutzer
-
mit std::set gehts auch ganz einfach

-
Dieser Thread wurde von Moderator/in Marc++us aus dem Forum C++/CLI mit .NET in das Forum C++ verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Habs hinbekommen.
Es schaut jetzt so aus:#include <iostream> #include <time.h> #include <cstdlib> #include <conio.h> using namespace std; int main() { srand(time(NULL)); int x=(rand()%49)+1, feld[6]={0}; bool checker; feld[0]=x; cout<<feld[0]; for (int i=1; i<6; i++) { cout<<' '; x=(rand()%49)+1; while (feld[i]==0) { checker=false; for (int j=0; j<i; j++) { while (x==feld[j]) { x=(rand()%49)+1; checker=true; i--; } if (checker==false && j==i-1) { feld[i]=x; cout<<feld[i]; } } } } getch(); }
-
Ich sehe insgesamt 4 Schleifen und 3x rand(). Die Loesung ist scheisse. Du hast alle Ratschlaege ignoriert. Warum stellst du dann ueberhaupt das Problem zur Diskussion?
-
zszsd schrieb:
Ich weiß auch gar nicht, was an meinem Algorithmus genau falsch sein soll. Die Vector-Variante müsste jedenfalls zu 100% korrekt sein. Ich sehe dort keine Fehlerquelle mehr...
Bei der nicht-Vector-Variante müsste es "j = -1" statt "j = 0" heißen.
-
Phisherman schrieb:
Habs hinbekommen.
Es schaut jetzt so aus:int x=(rand()%49)+1, feld[6]={0};Initialisierst du da alle 6 Felder von 'feld' mit 0?
-
@Blue-Tiger: Ja.
@knivil: Ich kenne "set" und Vektoren nicht. Und ja, ich muss rand jedesmal neu initialisieren, da doch die Zeit benutzt wird. Mit meinem momentan C++ Wissen fällt mir auch keine andere Lösung ein. Ich habe auch nicht nach einer anderen Lösung gefragt, sondern nach einer Korrektur.
