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.

liczenie pola czworokąta ze wskaźnikami w C

Lehu6 26 Sty 2011 06:19 768 3
  • #1 26 Sty 2011 06:19
    Lehu6
    Poziom 10  

    Witam, mam problem z programem obliczającym pole czworokąta, który musi zawierać wskaźniki, po prostu nie działa, nie wiem co w nim nie tak, oto kod:


    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 3
  • #2 26 Sty 2011 07:46
    directx11
    Poziom 17  

    Masz tu niezły śmietnik, to skopiowane czy wklepywałeś ten kod ręcznie? Nawiasy masz w złych miejscach (main() w środku innej funkcji), funkcje odczyt() i pole() nie zwracają wartości a powinny, po co tyle argumentów funkcji pole()?

    0
  • #3 26 Sty 2011 07:52
    chudybyk
    Poziom 27  

    Witam!
    Twoje podejście do programowania jest... innowacyjne. ;-)
    Ten kod się skompilował? Niemożliwe. Przyjrzyj się komunikatom błędów i spróbuj wyciągnąć wnioski. Kilka spostrzeżeń:
    1. Deklaracja wskaźnika nie rezerwuje pamięci na zmienną, którą wskazujesz. MUSISZ mieć zmienną, a dopiero potem użyć wskaźnika jako "odnośnika do tej zmiennej.
    2. Zasięg zmiennych. Użyj zmiennych globalnych, żeby były widziane w całym programie, zmienne deklarowane w funkcjach (w tym w funkcji main() mają zasięg lokalny ograniczony do tej funkcji (a w zasadzie do bloku w którym zostały zadeklarowane).
    3. Ilość argumentów funkcji pole() mnie powaliła. To chyba jakiś żart lub efekt artystyczny w nowym kierunku sztuki.
    4. Na Boga, komentuj kod, bo nic z niego nie wiadomo.
    5. Zapobiegawczo sugeruję użycie struktur danych, żeby nie deklarować mnóstwa zmiennych. Wtedy użycie wskaźnika do struktury jest bardzo intuicyjne i użyteczne.
    Popraw, proszę ten kod, skomentuj co on ma robić i wrzuć jeszcze raz, wtedy będzie nad czym dyskutować.
    Pozdrawiam!

    0
  • #4 27 Sty 2011 17:20
    wlw_wl
    Poziom 38  

    Kod: c
    Zaloguj się, aby zobaczyć kod

    Po co tyle kodu, skoro pole czworokąta wynosi i tak 8? :)

    0