Kezdőoldal » Számítástechnika » Programozás » A C "Bibliában" az 1.5.4...

A C "Bibliában" az 1.5.4 fejezetben szereplő szó, karakter és sorszámláló pédaprogramban nem értem az else if (allapot == KINT) { allapot = BENN; ++nw;} kódrészt. Ha az ALLAPOT egyenlő KINT-tel akkor az ALLAPOT miért kapja meg BENN értékét?!

Figyelt kérdés

#include <stdio.h>

#define BENN 1 /* a szó belseje */

#define KINT 0 /* a szón kivül */


/* a bemenetre adott szövegben lévő sorok,

szavak és karakterek számolása */


main( )

{

int c, nc, nl, nw, allapot;

allapot = KINT;

nl = nw = nc = 0;

while ((c = getchar( )) != EOF) {

++nc;

if (c == '\n')

++nl;

if (c == ' ' || c == '\n' || c == '\t')

allapot = KINT;

else if (allapot == KINT) {

allapot = BENN;

++nw;

}

}

printf("%d %d %d\n", nl, nw, nc);


2016. szept. 14. 14:02
 1/3 anonim ***** válasza:

Lépked végig a karakterekem, mondjuk:

[ ][\t][\t][\n][A][B][C]


Amikor az első négyet olvasod, kint vagy (beolvasás _után_ a karakter mögött vagyunk).

Ha nem szóköz, tab vagy newline, akkor (else if) bent vagyunk, nem ([A] utánról beszélünk)?

2016. szept. 14. 14:47
Hasznos számodra ez a válasz?
 2/3 SimkoL ***** válasza:
Azért mert a szavakat egymástól szóköz, újsor vagy tab választja el és ezekből elég egy is, hogy újabb szónak minősüljön. Tehát ha a fent emlitettekből már volt egy legalább egy, akkor feltételezi, hogy új szó következik még ha egy újabb szóköz is előzi meg.
2016. szept. 14. 15:30
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:
Csak akkor tudunk bejönni ha kint vagyunk.
2016. szept. 14. 19:59
Hasznos számodra ez a válasz?

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

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!