Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

C - Sprawdzanie/zliczanie znaków w tablicy znakowej.

JungleBeep 24 Wrz 2014 23:57 963 4
  • #1 24 Wrz 2014 23:57
    JungleBeep
    Poziom 5  

    Witam.

    Z góry przepraszam, za mało obszerne rozpisanie się w temacie jednak pragnę już snu.
    Pokrótce w wirze poprawek odłożyłem sobie napisanie programów w C na ostatnią chwilę, wszystko szło dobrze jednak jedno zadanie sprawia mi niesamowity problem.

    Napisać program, wczytujący do tablicy znakowej tekst z klawiatury (jeden wiersz),
    a następnie za pomocą odpowiednich funkcji:
    (a) sprawdzający czy w tekście występują tylko cyfry.
    (b) liczący ile we wczytanym tekście jest spacji,
    (c) liczący ile we wczytanym tekście jest wszystkich liter,
    (d) liczący ile we wczytanym tekście jest par takich samych znaków.

    Sama treść i ułożenie algorytmu w głowie jakże banalne, jednak nie jestem już w stanie grzebać w kodzie.
    Mam nadzieję, że bardziej zaawansowani użytkownicy udzielą mi rad które mnie oświecą.

    Korzystam z funkcji gets, jednak nigdy nie pracowałem na tablicach znakowych. Prawdopodobnie fgets sprawdziło by się lepiej.
    W poleceniu wyraźnie jest napisane, że ma być to jeden wiersz nie znalazłem jednak wskazówek jak to zrobić więc póki co ustaliłem dany max dla tablicy.
    Po wielu modyfikacjach (wydawałoby się jakże prostych założeń kodu) wszystko wciąż nie trzyma się całości. Oprócz oczywiście zliczania spacji.
    Jak rozumiem przez zmęczenie zapewne warunki które założyłem są zupełnie nielogiczne.

    Uprzejmie proszę o zerknięcie na moje nieudolne kodowanie.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Chciałbym przeprosić za część kodu, lecz ostatnie poprawki były wprowadzane resztkami sił. Jutro do 11 mam deadline, sądziłem że sobie poradzę w chwilę. Jednak się przeliczyłem. Sądzę, że któryś z uprzejmych Państwa znajdzie w chwilę błędy w funkcjach.

    Z wyrazami szacunku.
    B.

    0 4
  • #3 25 Wrz 2014 10:06
    JungleBeep
    Poziom 5  

    Wielkie dzięki za pomoc!
    Rozjaśniłeś mi trochę logikę tych pierwszych funkcji.

    Co do sprawdzania par tych samych znaków mam jednak kilka pytań.
    Czemu deklarujesz tam dodatkową tablicę?
    W d) chodzi o porównywanie kolejnych znaków, niestety Twoja funkcja zachowuje się jakby po prostu je zliczała. Myślałem nad czymś takim, jednak przy samych jedynkach zlicza parę tylko raz.

    Gwoli ścisłości przy podaniu 1111 moim zdaniem funkcja na wyjściu powinna podać 3, jednak wynik to wciąż jedna para.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #5 25 Wrz 2014 10:56
    JungleBeep
    Poziom 5  

    Dzięki lekto!

    0