Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Schleifen Verständnis

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
16.06.2018, 13:29 Uhr
Seto



Hi Elite,

ich habe eine Schleife programmiert, mit der ich Zufallszahlen innerhalb eines Intervalls erzeuge. Innerhalb des Intervalls sollen aber nur Zahlen, die ein vielfaches von 20 sind, gezogen werden.


C++:
#include <iostream>
#include <time.h>

int main()
{
    int a, b;
    srand(time(NULL));
    for (int i = 0; i < 20; i++)
    {
        /*do
        {
            a = rand() % 1065 + 15;
            b = rand() % 705 + 15;
        } while (a % 20 != 0 && b % 20 != 0);*/


        do
        {
            a = rand() % 1065 + 15;
        } while (a % 20 != 0);
        do
        {
            b = rand() % 705 + 15;
        } while (b % 20 != 0);
        
        std::cout << "a: " << a << " b: " << b << std::endl;
        //std::cout << "a: " << a << std::endl;
    }
    

    return 0;
}




Es sollen mit der for- Schleife 20 Zufallszahlen erzeugt werden. Innerhalb der do-Schleife überprüfe ich, ob die erzeugten Zahlen ein vielfaches von 20 sind. Das Komische ist, dass das Abbruchkriterium der do-Schleife für einen Parameter funktioniert, aber für zwei nicht das richtige rauskommt. Kann mir jemand erklären warum?

Beste Grüße
Seto
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.06.2018, 23:44 Uhr
f.-th.




Zitat von Seto:
Hi ...,

...


C++:
#include <iostream>
#include <time.h>

int main()
{
    int a, b;
    srand(time(NULL));
    for (int i = 0; i < 20; i++)
    {
        do
        {
            a = rand() % 1065 + 15;
            b = rand() % 705 + 15;
        } while (a % 20 != 0 && b % 20 != 0);   // Logik prüfen und im Zweifel weitere Klammerpaare setzen
        
        std::cout << "a: " << a << " b: " << b << std::endl;
    }
}


...

Beste Grüße
Seto


Das richtige Ergebnis ist möglich, wenn die Logik passt

In C++ sind heute auch andere Zufallszahlen möglich, es muss nicht mehr die alte-Schule-C-Variante sein.

Dieser Post wurde am 16.06.2018 um 23:47 Uhr von f.-th. editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: