Miért nem működik ez a kód C-ben?
Fájlból működik.
Usertől beolvassa enterig, de megfordítani már nem tudja. Mi lehet a probléma?
Az az int a függvény argumentuma lesz, hogy hányszor iteráljon a benne lévő for ciklus.
Ha a z-re gondolsz, abból lesz az a, ami meghatározza, hogy hány szót olvas be
User megad egy számot, mondjuk a hármat.
Ciklus jön, első ciklusmag lefut, a string értéke a beírt szó lesz, i értéke pedig 0.
Második ciklusmagnál string értéke a beírt szó, i értéke 1.
Harmadiknál string értéke a beírt szó, i értéke 2.
Te azt várod, hogy ezután leáll a ciklus, pedig nem, hiszen ott van az a scanf a ciklusfeltételben, ami újra bekér egy stringet!!!
1) Az első for ciklusba cseréld meg a két feltételt. Mert így az utolsó iterációban feleslegesen beolvas egy stringet.
2) az i-vel a-1-ig akarsz menni, tehát helyesen i<a.
Tehát scanf(...) && i<a-1 helyett:
i<a && scanf(...)
Így amikor az i<a nem teljesül, akkor a scanf-et már nem is hívja meg.
A második for ciklusban pedig i=a helyett, i=a-1-gyel kéne kezdened.
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!