![]() |
Zahl bereits vorhanden?
Hallo,
ich habe ein Problem mit einem C++ Programm. Wollte überprüfen ob die Zahl bereits vorhanden ist. Code:
#include <cstdlib> Wenn die Zahl bereits vorhanden ist, soll er diese Zahl nicht reinschreiben, aber trotzdem insgesamt 20 Zahlen in den Vector packen. Danke im Vorraus. |
Du überprüfst nicht alle Elemente in 'ziehung', du überprüfst immer nur das Element an der Stelle'j'.
EDIT: Außerdem ist das was du da machst relativ Sinnfrei da du 20 "zufällige" zahlen zwischen 0 und 19 generierst. Was zur Folge hat das jede Zahl einmal vorkommt. |
aber da ist doch eine for-schleife die hochzählt (eine zweite for-schleife).
ja dieses mit dem modulo war falsch, sollte 100 sein.. (zahlen von 0-100). aber sollte eben nicht doppelt im vector vorkommen. |
In deiner for-Schleife überprüfst du ob an dieser stelle des Vektors deine Zahl 'rand_zahl' steht. Da der Vektor aber leer ist kann an dieser Stelle nicht deine Zahl stehen, also wird die Zahl auch immer an den Vektor angehängt.
|
Habe meinen Code etwas erweitert und er funktioniert im bereich "Zahl bereits vorhanden?" ohne jegliche Probleme.
Meine nächste Frage wäre, ich möchte das es den Vector so lange füllt, bis der Vector X Zahlen hat. Wenn ich bei "ziehung.size() <= 5" mache, füllt er mir jedoch 6 Zahlen auf.. Er macht also quasi immer meinen Wunsch + 1. Code:
#include <cstdlib> |
Er macht immer einen mehr als du willst, weil du ziehung.size() <= 5 abfragst.
Somit muss ziehung.size mindestens 6 zurückgeben, damit deine while-Schleife aufhört und in dem Moment befinden sich ja bereits 6 Zahlen in deinem Vector, da ziehung.size die aktuelle größe deines Vectors zurückgibt. |
wenn ich den int-Wert 5 als const deklarieren würde, müsste ich also "5-1" machen.
Code:
const int maximum_size = 5; |
Wenn ich nicht falsch verstanden habe was du willst, ist das rigendwie zu kompliziert was du da machst:
Code:
#include <cstdlib> |
Zitat:
Bei Java fängt er immer bei 0 an ,wird bei C++ sicher nicht anders sein. Das ist dann auch der Grund wieso du 6 Zahlen bekommst weil du ja schreibst <= 5 somit hast 0,1,2,3,4,5 ; mit <5 bekommste 0,1,2,3,4 also deine 5 Zahlen. |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.