Hilfe...

  • 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

  • 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...

  • 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.


  • Zitat von Primenumber

    Wie siehts mit itoa() aus der stdlib aus? Ist das dann ISO C/C++?


    Weder noch. Wie gesagt, mit sprintf (und in C99 auch snprintf) geht sowas supi.


    Zitat

    Und char buf[10] geht aber schon?


    Ja, natürlich.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!