
C - switch pole
Dobry den chcel by som vediet ci sa da swithchnut viac hodnot ako jedna. Chcem dat dvojice hodnôt napr 1 1,1 2,1 3,2 1,... ktore su v poli. Da sa to nejako?
Dobry den chcel by som vediet ci sa da swithchnut viac hodnot ako jedna. Chcem dat dvojice hodnôt napr 1 1,1 2,1 3,2 1,... ktore su v poli. Da sa to nejako?
Zpět do poradny Odpovědět na původní otázku Nahoru
si ich spoj napr. ak to je byte tak 256*i+j apod a potom testuj dany vysledok.
A ked chcem aby zalezalo aj na poradi napriklad 1 0 je ine ako 0 1
Ved pri tom na poradi zalezi. 1 0 je 0x0100 a 0 1 je je 0x0001. Nechapes shift operacie?
Ide len o to jaky datovy typ mas tie prvky pola, musis ich vopchat do 2x vacsej premmenej. Ak su prvky pola char, tak ti staci int na vysledok. Ak su prvky pola int tak musis potom vysledok testoavt ako long int apod. Alebo zavisi ze jaka je max. hodnota tych prvkov.
A ked chcem aby zalezalo aj na poradi napr. 1 2 je ine ako 2 1
Tak můžeš dát dva switche do sebe, první pro první hodnotu v poli, druhý pro druhou hodnotu.
Nad tym som rozmyslal ale nieje to neefektivne?
Neefektivní myslíš na délku kódu? Ani ne. Zkus si to napsat pomocí if/else. Switch je přinejmenším přehlednější.
Pro tazatele: Jaký kontrétně řešíš problém? Třeba by se dalo udělat nějak rozmnějc, než switchem...
Asi dalo cez tie ify ... pouzivatel zada cislo riadku a stlpcu a podla toho aku dvojicu zadal program nieco robi u kazdej moznosti to je inak su 3riadky 3stlpce
Tak ked je max. hodnota 3, tak to urob jak som pisal vyssie.
switch(i*256+j) {
case 0x0000:
case 0x0001:
case 0x0100:
apod.
A ked to ma robit furt to same len niekde inde, tak sa to nerobi switchom, ani ziadnymi podmienkami.
Aha ja som si nevsimol tvoju reakciu :D kedysi davno som to robil skusim to dakujem :)