Tomb2[j++] felírható másként?
Adott egy "egyszerű" kiválogatás tétel, ahol tömb1 elemei közül válogatjuk ki a pl. 5-nél nagyobbakat, majd azokat tömb2-be tároljuk. Mivel a tömb2 méretét előre nem tudjuk csak a lehetséges maximum méretet, így a kimenetben valószínűsíthetően 0 kerül annak az elemnek a helyére, ami nem tesz eleget a feltételnek.
Adott egy ilyen sor:
int j=0;
for(int i=0; i<tomb1.length;i++)
if(tomb1[i] > 5)
tomb2[j++] = tomb[i];
Ebben a sorban, a kérdés tárgyában leírt sort nem értem (tomb2[j++]). Pontosabban a logikáját nagyjából értem, de felírható ez másként is, mert gondolom ez valami összevont alak)
Mindenképpen tömbben kell megvalósítanom és mivel egyszerű a kérdés így biztos a legtöbben megtudjátok oldani (ha meglehet más alakban), így segítséget várok, nem pedig kioktatást, hogy miért nem tudom. Köszönöm
tomb2[j++];
ugyan az mint a
tomb2[j]; j=j+1;
Tehát először kiválasztjuk a j indexű elemet majd megnöveljük a j-t eggyel. Így lehet átírni a példát:
int j=0;
for(int i=0; i<tomb1.length;i++)
if(tomb1[i] > 5) {
tomb2[j] = tomb[i];
j++;
}
Nagyon köszönöm.
Ez volt a hiba (így próbálkoztam):
int j=0;
for(int i=0; i<tomb.length;i++)
if(tomb[i] > 5)
tomb2[i] = tomb[i];
j++;
Ennyit jegyezz meg: változó elé írva először elvégzi a műveletet, aztán lehet felhasználni a példádban indexeléshez. Változó mögé írva, először az indexelésnél felhasználod az értékét, majd elvégzed a műveletet rajta.
pl: j=0; tomb[++j] esetén tomb[1] elemét kérnéd el
Ha valahol esetleg írják, akkor
++i: prefix
i++: postfix
alak, technikailag pedig a prefix alak, mint kifejezés értéke i+1, míg a postfix alak kifejezés értéke i, és a visszatérési értéke i+1.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!