[ Príspevkov: 4 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.07.08
Prihlásený: 08.12.08
Príspevky: 16
Témy: 6 | 6
NapísalOffline : 28.11.2008 21:31 | C scitavanie slov riadkov a pismen

no spravil som programcek kt ma pocitat riadky slova a pismena
ide mi vsak o to ze chcem aby to roib lo tak ze zadam text stlacim enter alebo nieco a vypise mi to lenze som zaciatocnik v C a netusim ako :'( prosim ak by niekto mohol prerobit program tak ako chcem aj s vysvetlenim by som bol happy diky... :(

Kód:
#include <stdio.h>
#include <conio.h>


#define YES 1
#define NO  0

main()
{
int c, nl, nw, nc, inword;
inword = NO;
nl = nw =  nc = 0;
while ((c = getchar()) != EOF) {
       ++nc;
     if (c == '\n')
       ++nl;
     if (c == ' ' || c == '\n' || c == '\t')
       inword = NO;
     else if (inword == NO){
       inword = YES;
       ++nw;
             }
             }
             printf("%d %d %d\n", nl, nw, nc);       
             }     
:oops: :oops: :oops: :oops: :loony:


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 03.12.25
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 28.11.2008 23:20 | C scitavanie slov riadkov a pismen

No tak sa pokusim. :)
Mas tam cyklus
while ((c = getchar()) != EOF) { - pokym sa nacitany znak c nerovna koncu
++nc; // zvacsi premennu nc o jedna
if (c == '\n') //ak sa c rovna znaku '\n' - novy riadok
++nl - tak sa zvacsi premenna nl
if (c == ' ' || c == '\n' || c == '\t') //ak je c nejaky biely znak
inword = NO; //tak inword sa rovna NO - nachadza sa mimo slova
else if (inword == NO){ // inak, ak sa inword rovna NO
inword = YES; //tak sa inword rovna YES - cize je vnutri slova, to aby sa pri dalsom prechode cyklom to iste slovo nepocitalo viackrat
++nw; // zvysi sa premenna nw, ktora znaci pocet slov
na konci sa uz len vypisu.
Pridaj si na koniec este getch(), aby si videl vysledky programu.
A snaz sa trochu dodrziavat "Stabnu kulturu". :)
Kód:
#include <stdio.h>
#include <conio.h>

#define YES 1
#define NO  0

int main(void)
{
    int c, nl, nw, nc, inword;
   
    inword = NO;
    nl = nw =  nc = 0;
   
    while ((c = getchar()) != EOF) {
          ++nc;
          if (c == '\n')
             ++nl;
          if (c == ' ' || c == '\n' || c == '\t')
             inword = NO;
          else if (inword == NO) {
             inword = YES;
             ++nw;
          }
    }
   
    printf("%d %d %d\n", nl, nw, nc);       
   
    getch();
   
    return 0;
}

Na dosiahnute konca suboru (hodnoty makra EOF) pouzi pri vstupe skratku Ctrl+Z(pod Win), pod Linuxom Ctrl+D. ;)


_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.07.08
Prihlásený: 08.12.08
Príspevky: 16
Témy: 6 | 6
Napísal autor témyOffline : 29.11.2008 11:37 | C scitavanie slov riadkov a pismen

ok :( diky ale ono to nefunguje nepocita to slova ani nic... vzdy pise 0 0 0


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 03.12.25
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 29.11.2008 18:40 | C scitavanie slov riadkov a pismen

Zaujimave, u mna to funguje uplne korektne. Vypisalo by to 0 0 0 iba v tom pripade, ak by si hned na zaciatku vstupu stlacil Ctrl+Z. ;)


_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
 [ Príspevkov: 4 ] 


C scitavanie slov riadkov a pismen



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Vyber prvych 30 pismen alebo 10 slov

v Backend

6

768

02.11.2012 14:20

hackerwoody

V tomto fóre nie sú ďalšie neprečítané témy.

sčítavanie

v Frontend

8

587

26.03.2008 16:28

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

Sčítavanie s podmienkou - Excel

v Ostatné programy

4

1537

22.07.2009 8:02

PaloPa

V tomto fóre nie sú ďalšie neprečítané témy.

Dve grafické karty scitavanie vykonu

v Ostatné grafické karty

4

881

03.01.2025 18:18

Neviem9

V tomto fóre nie sú ďalšie neprečítané témy.

Malá otázka - Sčítavanie frekvencie procesorov

v Intel

18

1001

30.03.2012 16:34

Spixy

V tomto fóre nie sú ďalšie neprečítané témy.

Zlomy riadkov

v Backend

2

573

07.07.2009 0:58

jurov

V tomto fóre nie sú ďalšie neprečítané témy.

vyznacovanie riadkov

v Frontend

14

778

22.06.2009 12:25

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

mazanie riadkov

v Backend

6

726

22.11.2007 10:23

vl4kn0

V tomto fóre nie sú ďalšie neprečítané témy.

Mazanie riadkov

v Databázy

2

882

09.03.2012 21:33

sedlák

V tomto fóre nie sú ďalšie neprečítané témy.

vynechávanie písmen

v Ostatné programy

0

446

04.09.2012 21:36

frezi

V tomto fóre nie sú ďalšie neprečítané témy.

Tabulka farba riadkov

v Frontend

6

781

12.10.2008 20:28

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

textarea - zalomovanie riadkov

v Frontend

4

1400

09.09.2009 23:38

Wicky

V tomto fóre nie sú ďalšie neprečítané témy.

Zlúčenie riadkov titukov

v Video programy

0

394

03.06.2016 12:51

Pablo Montero

V tomto fóre nie sú ďalšie neprečítané témy.

odstranenie prazdnych riadkov

v Backend

7

2042

12.03.2008 22:09

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

Zmena písmen disku

v Pevné disky a radiče

11

2256

27.12.2011 20:06

jano101

V tomto fóre nie sú ďalšie neprečítané témy.

W7 blbnutie pismen...

v Windows

8

850

31.05.2011 22:00

kefan77



© 2005 - 2026 PCforum, edited by JanoF