Generowanie losowej godziny

0

Cześć, dopiero zaczynam z c++ i jeszcze wielu rzeczy nie rozumiem, dlatego proszę o wyrozumiałość jeśli to głupie pytanie :D
Staram się zrobić program, który wygeneruje mi losową godzinę (i nawet jakoś mi idzie!). Nie mogę jednak za żadne skarby sprawić, by jeśli wylosuje mi się jedna cyfra, stanęło przed nią zero. Wychodzą mi wtedy za duże liczby... Czy jest ktoś w stanie mi to wytłumaczyć/pomóc?
Bardzo dziękuję!!

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
int main()
{
     
    srand(time(NULL));
    int a = rand()%24;
    int b = rand()%60;
    int c = rand()%60;
    
    cout << a;
    	if(a>=0, a<=9) {
		cout << 0 << a;}
	cout << ":";
	cout << b;
		if(b>=0, b<=9) {
		cout << 0 << b;}
	cout << ":";
	cout << c;
		if(c>=0, c<=9) {
		cout << 0 << c;}
     
    return 0;
2

zapoznaj się z std::random i poczytaj też sobie o std::chrono żeby wiedzieć jak czas w c++ wygląda
https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution

3

Pomijając <random>, zapoznaj się z absolutnymi podstawami C++, takimi jak instrukcje warunkowe i operatory logiczne.

if(a>=0, a<=9) 

jest równoznaczne z

if(a<=9) 

Zamiast , użyj &&

PS: Self-insert: https://dsp.krzaq.cc/post/180/nie-uzywaj-rand-cxx-ma-random/

5

Wylosuj jedną liczbę - maksymalnie ilość sekund w 24 godzinach.
Jak podzielisz tą liczbę przez ilość sekund w godzinie otrzymasz liczbę godzin.
Potem jak odejmiesz od wylosowanej liczby ilość sekund w tej liczbie godzin, to możesz tak samo policzyć minuty, a potem zostają Ci już same sekundy...
Cały czas wykonujesz dzielenie całkowite bez reszty.

2
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;


int main()
{
	srand(time(0));
	for(int i=0;i<20;++i)
	{
		int h=rand()%24,m=rand()%60,s=rand()%60;
		cout<<setfill('0')<<setw(2)<<h<<':'<<setw(2)<<m<<':'<<setw(2)<<s<<endl;
	}
    return 0;
}

Specjalnie dla @Spine i @obscurity podaje "czytelniejszy" kod z mnóstwem spacji:

# include <iostream >
# include <iomanip >
# include <ctime >
using namespace std ;


int main ( )
{
	srand ( time ( 0 ) ) ;
	for ( int i = 0 ; i < 20 ; ++ i )
	{
		int h = rand ( ) % 24 , m = rand ( ) % 60 , s = rand ( ) % 60 ;
		cout << setfill ( '0' ) << setw ( 2 ) << h << ':' << setw ( 2 ) << m << ':' << setw ( 2 ) << s << endl ;
	}
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1