Frage, hab ein kleines programmiertechnisches Problem.
Erstelle eine vierstellige Zufallszahl. Ein benutzer gibt ebenso eine vierstellige Zahl ein. Meine Frage: Wie komm ich bei der ZUfallszahl an die einzelnen Zahlen. z.B: 9812 aufschluesseln auf 9,8,1,2. Komm einfach nicht drauf, das Spiel nennt sich Mastermind. Damit man vergleichen kann, wieviele Zahlen uebereinstimmen.
L.g Fips
Hilfe...
-
-
Entweder ganz hässlich mit foo / 1000, die nächste Stelle mit foo - ((foo / 1000) * 1000) usw
oder zB
char *bar = new char[10];
_itoa(foo, bar, 10);
und mit bar[0] bis bar[9] hast du die einzelnen chars.
Vielleicht gibts auch noch ne schönere Lösung, aber ich bin schon zu C# geschädigt -
Zitat von Primenumber
_itoa(foo, bar, 10);
Diese Funktion _itoa ist aber nicht Teil von ISO C oder ISO C++ und wird nur auf bestimmten Plattformen unterstützt. In echtem C kann man zum Beispiel sprinf verwenden. Ich finde übrigens nicht, daß es total häßlich ist, die Ziffern einzeln mit Modulo- und Divisionsoperationen zu ermitteln.
new ist übrigens C++, aber nicht C; eventuell hilft das fips nicht weiter. Ich würde allen empfehlen, die sinnlose Kategorie "C/C++" zu ignorieren und stattdessen explizit ihn ihren Post zu schreiben, in welcher Sprache sie ihre Lösung haben möchten. (Oder man nervt halt die Mods so lange, bis anständig benannte Kategorien eingeführt werden.) Und man bekommt vielleicht auch mehr Hilfe und weniger Beschwerden von Leuten wie mir, wenn man seinem Thread auch einen brauchbaren Titel gibt... -
Einwand zur Kenntnis genommen.
Wie siehts mit itoa() aus der stdlib aus? Ist das dann ISO C/C++?
Und char buf[10] geht aber schon? -
Wahrscheinlich nicht der schönste und tollste Code, aber wenn man in Kürze weggeht, sollte es wohl genügen. Wenn du i mit 10000 initialisierst, dann kannst du 5stellige Zahlen behandeln, usw. Fst kannst du in der Schleife zB in ein Array platzieren.
-
-
warum machst du nicht einfach eine modulo rechnung mit der zufallszahl und so kriegst du dann die einzelnen zahlen
zb 3445
3445 mod 10= 5
3445 / 10 = 344
344 mod 10 = 4
344 / 10 = 34
....
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!