Tudnátok segiteni?
int main (){
int k=11, b=2,z;
z=b%3;
cout<<z;
system("pause");
return 0;
}
miért lesz 2 az eredmény
int i=0;
while ( i<4)
i-- miért nem adni ki valós eredmény?
mit értesz az alatt, hogy valós eredmény?
i-- egyenlő avval, hogy: i = i - 1
meg hogy érted?
így: while (i < 4) i--;
vagy így: while (i < 4); i--;
mind a kettő végtelen ciklus, mert az elsőben i mindig kisebb lesz mint 4, a másodikban szintén, csak annyi, hogy nem csökkented az i értékét
A % maradékképző operátor. A matematikában modulo a neve, és maradékos osztásnál találkozhatsz vele. A hányados mellett maradék is képződik.
Mivel b=2, és 2 3-as maradéka 2, azért z értéke 2 lesz.
#1:
Annak ellenére, hogy központozás nélkül értelmetlenséget írtál, valószínűsítem, hogy a #3 által említett első változattal...
while (i < 4) i--;
...próbálkoztál, mivel ez ad kiíratható, mégpedig kifogástalan eredményt. A ciklus ugyanis csak elméletileg végtelen, mert az int típus számábrázolási módja határt szab neki. A programod tehát először addig csökkenti i értékét, amíg el nem éri az int típussal ábrázolható legkisebb mínusz számot (ez nálam, de jó eséllyel nálad is, -2147483648), aztán a következő lépésnél már átfordul a számláló az ábrázolható legnagyobb pozitív számra, és ezzel teljesül is az (i < 4) feltétel, aminek nyomán a program az elmellőzött következő sorban kiírhatja az általad megkövetelt 2147483647 számot. Természetesen úgy is érthető(?) a kérdés, hogy egy egész változó csökkentése miért nem ad valós típusú eredményt, de ezt a gondolatmenetet zárjuk rövidre azzal, hogy azért, mert egész, nem pedig valós...
+ „teljesül is az (i < 4) feltétel”
Bocsánat, teljesen idétlenül fogalmaztam. Egyrészt azt akartam írni: „teljesül is a while(i < 4) feltétel”, csak eltévesztettem, másrészt viszont az is hülyeség lett volna. Éppen, hogy az ellentéte következik be, vagyis i értéke már nem felel meg a feltételnek -- tehát nem kell tovább csökkennie, jöhet a következő utasítás, például az érték kiíratása.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!