Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Program pro převod soustav C++

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 :-)

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny