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++ - przekazanie tablicy strukturalnej do funkcji

abc_123f 04 Mar 2014 00:07 1320 5
  • #1 04 Mar 2014 00:07
    abc_123f
    Poziom 2  

    Cześć, nie jestem wstanie wyłapać błędów. A być może ta funkcja jest całkowicie źle napisana? Proszę o pomoc.
    treść zadania:

    Code:
    Zadeklaruj strukturalny typ danych, który będzie zawierał dwa pola: napis oraz liczba całkowita. Następnie w funkcji main zadeklaruj lokalną tablicę o długości 5, zawierającą elementy typu takiego, jak zdefiniowana wcześniej struktura. Napisz w funkcji main kod, który pozwala użytkownikowi wprowadzić wartości do obydwu pól w każdej z komórek tej tablicy.
    

    Następnie napisz funkcję, która jako argument wywołania przyjmuje tę tablicę. Kod funkcji sprawdza, czy w każdej z komórek tablicy pole liczbowe nie zawiera wartości mniejszej (ale dodatniej) od długości napisu przechowywanego w drugim polu. Jeżeli tak, skraca napis do długości takiej, jak wartość w polu liczbowym. W przeciwnym przypadku pozostawia napis niezmieniony. Takie sprawdzenie i skracanie wykonuje się dla wszystkich komórek tablicy. Po przejrzeniu całej tablicy funkcja zwraca liczbę skróceń, jakie rzeczywiście zostały wykonane.

    W funkcji main poniżej kodu wprowadzającego dane wywołaj funkcję skracającą napisy w tablicy. Po zakończeniu jej działania wyświetl nową zawartość tablicy (w kolejnych wierszach pary: liczba i napis) oraz zwróconą przez funkcję liczbę faktycznie wykonanych skróceń.

    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    a błędy to:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    1 5
  • #2 04 Mar 2014 00:47
    mi14chal
    Poziom 28  

    Problemem u Ciebie jest to że robisz funkcję która jako parametr przyjmuje strukturę która jest dopiero zdeklarowana po funkcji.

    1
  • #3 04 Mar 2014 08:37
    gaskoin
    Poziom 38  

    Poza tym, do funkcji przekazujesz pojedynczą strukturę, a powinieneś przekazać wskaźnik do niej. No i powinno być "struct struktura" a nie "struktura". Wspomnę jeszcze, że program nie jest napisany w c++

    0
  • #4 04 Mar 2014 18:05
    abc_123f
    Poziom 2  

    dzięki za odpowiedź, udało mi się poprawić i działa. Jedynie mam pytanie czemu twierdzisz, że nie jest ten program napisany w c++? :)

    0
  • #5 04 Mar 2014 18:31
    mi14chal
    Poziom 28  

    Bo używasz struktur które są domeną języka C, a w C++ masz struktury i klasy, a w twoim przypadku lepiej by było zrobić klasę.

    1
  • #6 04 Mar 2014 18:58
    krru
    Poziom 32  

    gaskoin napisał:
    No i powinno być "struct struktura" a nie "struktura".


    Nieprawda

    -1