Za prve chybaju ti zatvorky { } na oznacenie obsahu toho cyklu for. Tym padom tam cyklujes len to jedno delenie. A az si tam tie zatvorky doplnis tak zistis ze vypisane cislo je naopak.
Ked to chces urobit bez ukladania cifier, tak si najprv zistis maximalnu mocninu dvoch, a zmenusjes to a odcitavas.
unsigned int i;
for(i=1; i<(UINT_MAX/2); i*=2)
if(i>=zadane_cislo)
break;
if(i>zadane_cislo && i!=1) i/=2; // len na zrusenie zbytocnej nuly na zaciatku za urcitych okolnosti
while(i != 0)
{
if(zadane_cislo >= i)
{
cout << "1";
zadane_cislo -= i;
}
else
cout << "0";
i/=2;
}
//edit: opravil som podmienku//edit2: este som opravil tu podmienku vo while, snad to uz je ok
