-> % <-



  • Hi da bin ich wieder *g*

    ich habe mir mal viele Tutorials angeschaut und bin jetzt schon wirklich gut ^^
    nur habe ich nichts über dieses Prozentzeichen gefunden -> %

    Könntet ihr mir pls. ein Beispiel bekanntmachen und mir danach gleichdarauf erklären,wie das funktioniert 😕

    ´zZzZzZzZzZzZzZzZzZZzZZZZzzZZZzzZzZZ :p



  • Das ist der sogennante Modulo-Operator.

    Siehe auch diesen Link: Modulo

    Er gibt auf zwei ints angewendet den Rest zurück den man erhält, wenn man die erste durch die zweite Zahl teilt:

    5%3=2
    7%4=3
    ...
    


  • Das ist das Modulo Zeichen.

    5%5=0;
    6%5=1
    7%5=2

    Es gibt also immer den ganzzahligen Rest einer Division zurück.



  • Aber ich habe mal gehört,dass es soetwas auch bei srand() & rand() gibt,also das man das modulozeichen da reinschreibt,aber was es für einen Effekt hat,weiss ich nicht.



  • Damit kannst du den Bereich eingrenzen, in dem Zufallszahlen generiert werden.

    zufallszahl = rand() % 20;
    

    Damit bekommst du Zufallszahlen zwischen 0 und 19.



  • DarthZiu schrieb:

    Damit kannst du den Bereich eingrenzen, in dem Zufallszahlen generiert werden.

    zufallszahl = rand() % 20;
    

    Damit bekommst du Zufallszahlen zwischen 0 und 19.

    int core = rand() % 20;
    cout<<core;
    

    Da kommt nur "1" raus 😞



  • mußt halt noch srand(time(0)); davorschreiben.



  • Wenn du das nur einmal aufrufst, kommt auch nur eine Zufallszahl (wahrscheinlich zufällig ne 1).

    Ruf das 100 mal in einer Schleife auf und gib es aus. Vorher initialisierst du es so, wie Jester es geschrieben hat.



  • Jester schrieb:

    mußt halt noch srand(time(0)); davorschreiben.

    Danke,hat geklappt 😉
    Also nur noch eine einzige Frage zu diesem rand() ... em also in rand() tut man ja nichts reinschreiben,aber was kann man nun wirklich weiteres in srand() reincoden?
    Also srand(time(0)); wäre ein beispiel,aber bei "1",etc.. würde nur ein Fehler auftreten 😮

    Was kann man denn noch in srand() reinschreiben,was etwas verändert wird?

    DarthZiu schrieb:

    Wenn du das nur einmal aufrufst, kommt auch nur eine Zufallszahl (wahrscheinlich zufällig ne 1).

    Ruf das 100 mal in einer Schleife auf und gib es aus. Vorher initialisierst du es so, wie Jester es geschrieben hat.

    Ja,danke es hat wirklich so funktioniert 👍

    Primer



  • srand(...) erwartet als Parameter eine Zahl, anhand derer der Zufallsalgorithmus parametriert wird. Wenn du dort immer die gleiche Zahl reinschreibst (zb 4711), dann werden deine Zufallszahlen immer gleich sein. (Das kannst du ja einfach mal testen).

    Um bei jeder Ausführung wirklich zufällige Zahlen zu bekommen, initialisiert man es mit der Systemzeit.
    Die function time() gibt dir Zeit zurück. Wenn du dir mal die Beschreibung der Funktion time() anschaust: http://www.cppreference.com/stddate/time.html
    siehst du, dass man der Funktion einen Zeiger übergeben könnte, in dem das Ergebnis gespeichert wird. Mit dem Parameter 0 ( time(0) ) sagst du der Funktion: "Gib nur zurück und speichere es nicht in einem Parameter".

    Wenn du da ne 1 reinschreibst, denkt die Funktion, dass 1 ein Zeiger auf eine Struktur ist, die sie füllen soll. Das ist natürlich bullshit, deswegen kracht es.


Anmelden zum Antworten