Kezdőoldal » Számítástechnika » Programozás » Tudnátok segiteni?

Tudnátok segiteni?

Figyelt kérdés

int main (){


int k=11, b=2,z;

z=b%3;

cout<<z;

system("pause");

return 0;

}


miért lesz 2 az eredmény



2018. nov. 25. 08:30
 1/8 A kérdező kommentje:

int i=0;

while ( i<4)

i-- miért nem adni ki valós eredmény?

2018. nov. 25. 08:32
 2/8 anonim ***** válasza:
Kettőt elosztod hárommal, és mennyi a maradék (kettő). Ez nem prog kérdés, inkább matek.
2018. nov. 25. 08:45
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:

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

2018. nov. 25. 08:51
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
Van akin nem lehet segíteni.
2018. nov. 25. 09:54
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
0%
Oda kellet volna figyelni matek órán.
2018. nov. 25. 10:05
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

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.

2018. nov. 25. 16:02
Hasznos számodra ez a válasz?
 7/8 tabaki ***** válasza:

#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...

2018. nov. 25. 20:33
Hasznos számodra ez a válasz?
 8/8 tabaki ***** válasza:

+ „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.

2018. nov. 26. 00:08
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!