Kezdőoldal » Számítástechnika » Programozás » Mert fagy be egy egyszerű for...

Mert fagy be egy egyszerű for ciklus?

Figyelt kérdés

Pl (C-ben):

int x, y;

scanf("%d", &x);

for( y=1; y*y<x; x++ )

printf("%d ", y*y);

Általában befagy, van nap mikor megy, de előbbi esetben mit tegyek?


2017. szept. 17. 21:22
 1/6 anonim ***** válasza:
bekéred x -et de ha x értéke kisebb mint y*y akkor a for ban levő feltétel mindig igaz lesz így aztán lesz egy végtelen ciklusod.
2017. szept. 17. 21:27
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Ez teljesen igaz, hiba. De ha 26-ig kérem, még mindig nem értem, mi a baj.
2017. szept. 17. 21:44
 3/6 anonim ***** válasza:
100%

Egy ciklus azért fagy be, mert végtelen.

A ciklusos addig megy, míg y^2 kisebb, mint x.

De y (és emiatt y^2 is) mindig 1 marad, mert y-t soha nem növeled.

1 meg elég sokáig kisebb marad, mint bármelyik nála nagyobb szám (egészen túlcsordulásig).

2017. szept. 17. 21:49
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

"Általában befagy, van nap mikor megy,"

Ez meg mese habbal, ez a kód soha nem működhetett jól.

2017. szept. 17. 21:50
Hasznos számodra ez a válasz?
 5/6 A kérdező kommentje:
hoppá, y++ kell, köszönöm! (nem mentség, de még csak egy hete programozok)
2017. szept. 17. 21:51
 6/6 A kérdező kommentje:
általában = van amikor jólírtam, y++, valószínűleg
2017. szept. 17. 21:52

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!