Új hozzászólás Aktív témák

  • Jester01
    veterán

    Sziasztok!

    Az előző feladatot sikerült megcsinálnom Fire segítségével.

    Itt lenne egy másik feladat:

    Írjunk progit,amely megszámolja a bemenetre adott szövegben lévő szóközöket,tabulátorokat és új sor karaktereket.

    Amit megírtam,de nem is bizti,hogy jó,meg lehet valaki tud valami okos tanácsot adni,hogy lehetne kicsit tömörebben. A forráskódot belinkelem,ha lehet ne szapuljatok,mert kezdő vagyok.

    #include<stdio.h>

    void main(void)
    {
    int c,tab,ujsor,space;

    tab = 0;
    ujsor =
    space = 0;

    while (( c = getchar()) != EOF)
    if (c == ' ' || c == '\n' || c=='\t')
    ++tab;
    ++ujsor;
    ++space;
    printf("%d\n",space);
    printf("%d\n",ujsor);
    printf("%d\n",tab);
    }

    Egyes számú okos tanács: próbáld ki :K
    Kettes számú okos tanács: mindig használj kapcsos zárójelet ciklusokban és feltételekben
    Hármas számú okos tanács: a main úgy illik, hogy int-et adjon vissza

    Ha a kapcsos zárójeleket betesszük úgy, ahogy a fordító értelmezi a te kódod, akkor ez lesz:

    while (( c = getchar()) != EOF) {
    if (c == ' ' || c == '\n' || c=='\t') {
    ++tab;
    }
    }
    ++ujsor;
    ++space;

    Látható, hogy az utolsó két sor nem hogy az if-ben, de még a while-ban sincs benne. Tehát azok mindig 1-et fognak kapni. A tab változó pedig önmagában számolja mind a 3 típust, vagyis azok összege lesz benne. A 3 karaktert külön-külön feltétellel (vagy switch szerkezettel ha már azt ismered) kell ellenőrizni, és persze mindet a cikluson belül.

Új hozzászólás Aktív témák