Odpowiedź :
Odpowiedź
Owszem można wykorzystać dowolną pętlę, :) jednak najbardziej naturalną jest pętla do {} while ().
Oprócz kodu źródłowego (w pierwszym załączniku) pokazałam jak wyglądają trzy różne możliwe zakończenia programu
- koniec pętli po wygenerowaniu 10 liczb,
- koniec pętli gdy zostanie wygenerowana liczba podzielna przez 7,
- koniec pętli po wygenerowaniu 10 liczb podczas gdy ostatnią wygenerowaną liczbą jest liczba podzielna przez 7; w tym przypadku istotna jest kolejność warunków sprawdzanych na zakończeniu pętli, gdy pierwszy nie jest prawdziwy wtedy drugi warunek już w ogóle nie jest sprawdzany; akurat jako pierwszy warunek podałam sprawdzanie licznika wszystkich wygenerowanych liczb.
Wyjaśnienie
Funkcja rand() generuje liczby typu int z zakresu od 0 do RAND_MAX. Dla różnych kompilatorów wielkość RAND_MAX jest różna. Przykładowo w popularnych środowiskach Visual Studio oraz Code::Blocks RAND_MAX wynosi 32767, podczas gdy w replit oraz OnlineGDB wynosi 2147483647.
Tak, właśnie tak ma być srand( time( nullptr ) );
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/d4c/b3b404ba60e3cc6d1c2714a915fa6266.png)
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/d63/e9961b6af028435c34e0146fe3724c45.png)
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/d0a/dc60e97cb8765a03c226ca07b7735994.png)
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/db5/7d5b85aaa173957813ea5b513870edc7.png)