Mehrere Zufallszahlen



  • Ich würde gerne eine Zufallszahl erzeugen. (klappt auch)
    Diese Zahl speicher ich in der Variable "int Zufall",
    und im nächsten Schritt möchte ich diese Variable "int Zufall" mit
    einer neu generierten Zufallszahl überschreiben.

    Aber irgendwie nimmt er immer 2 gleiche Zahlen.
    z.B 2,2 , 4,4 oder 6,6 nicht soetwas z.B. 3,5 oder 1,8.

    Wie kann ich das Problem lösen?



  • srand() nur ein einziges Mal am Anfang der main() rufen.

    ~Edit: Typo.~



  • Dann machst du etwas falsch. Schau dir den Artikel von Marc++us an.



  • So sieht mein Programm nun aus.

    int main(){
    int zufallszahl;
    
        srand(time(NULL));
            zufallszahl = rand() % 10 + 1;
            cout << zufallszahl << "\n";
    
            zufallszahl = rand() % 10 + 1;
            cout << zufallszahl << "\n";
    
        getch();
        return 0;
    }
    


  • und nun? funktioniert es? Macht es was du willst? Oder ist das ein "alles läuft und hier ist die funktionierende Lösung"?



  • Nein ist funktioniert nicht..



  • Doch, es funktioniert. 🙄

    Wenn was nicht geht schreib halt dazu was, es interessiert echt keinen hier zu raten.



  • Blitz schrieb:

    So sieht mein Programm nun aus.

    int main(){
    int zufallszahl;
    
        srand(time(NULL));
            zufallszahl = rand() % 10 + 1;
            cout << zufallszahl << "\n";
    
            zufallszahl = rand() % 10 + 1;
            cout << zufallszahl << "\n";
    
        getch();
        return 0;
    }
    

    diese Programm gibt zwei zufällige Zahlen zwischen 1 bis 10 aus. Die zahlen können gleich sein, müssen aber nicht.

    Gib doch einfach ein paar Zahlen mehr aus:

    #include <cstdlib> // rand
    #include <ctime>
    #include <iostream>
    
    int main()
    {
        using namespace std;
        srand(time(NULL)); // nur einmal(!) aufrufen
    
        for( int i=0; i<6; ++i ) // 6-mal
        {
            int zufallszahl = rand() % 10 + 1;
            cout << zufallszahl << "\n";
        }
    
        cin.get();
        return 0;
    }
    

    Gruß
    Werner





  • Danke dir Werner Salomon, jedzt funktioniert es wie ich es wollte 🙂



  • Sry für doppelpost.
    Aber noch eine Frage wie kann ich es einstellen das es in einem Bereich zwischen 40 und 50 sein soll?


  • Mod

    wie kann ich es einstellen das es in einem Bereich zwischen 40 und 50 sein soll?

    In dem du den Modulo und den Summand entsprechend abänderst:

    zufallszahl = rand() % 9 + 41; // für (40, 50)
    zufallszahl = rand() % 10 + 40;// für [40, 50)
    zufallszahl = rand() % 11 + 40;// für [40, 50]
    

    (Edit: Falls dir die Notation fremd ist, siehe hier)



  • Danke! 😃


Log in to reply