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

[C++] wywołanie funkcji - za duzo argumentow

05 Lis 2015 23:27 2316 34
  • Poziom 4  
    Witam mam problem, losuję w jedną tablicę losowe wartości , i mam przekazać do dwóch tablic liczby parzyste i nieparzyste, kompilator pisze mi że za dużo argumentów w funkcji void, nie maa pojęcia już jak to rozwiązać :
    [code]
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 24  
    Stworzyłeś funkcje przyjmujące dwa argumenty, wywołujesz je z jednym argumentem. Poczytanie jakiegoś kursu nie zaszkodzi :)
  • Poziom 4  
    OK już poprawiłem ale jest inny problem:
    Dlaczego mój program po podaniu przedziału ładnie wyświetla z tablicy N a przy tablicy B wyświetla dużą liczbę, poproszę o wskazanie błędu w kodzie to mnie urządzi.
    [code]
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    Poziom 24  
    Na pewno brak klamer w ifie, brak spacji/przecinka/endl przy wypisywaniu B[i], no i odwrotnie przypisujesz do tablic - to tak na szybko, bez kompilacji
  • Poziom 4  
    Dziękuję pomogłeś bardzo :) Zmęczony już jestem głupie błędy, a mógłbyś powiedzieć co mam zrobić aby z tablicy N wrzucić pierw same nieparzyste a potem same parzyste do B ? Głowie się bo przecież w takim wypadku nadpisuje co drugi .
  • Poziom 24  
    Tu masz poprawiony, działający program (okroiłem go tylko z pobierania danych o zakresie randoma od użytkownika - dodaj to sobie)

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Myślę, że dalej z rozbudową już sobie poradzisz.

    Edit: obliczanie randoma też było skopane, niepotrzebnie do wylosowanej liczby dodawałeś jeszcze wartość zmiennej "a".
  • Poziom 4  
    Dziękuję pomogłeś bardzo :) Zmęczony już jestem głupie błędy, a mógłbyś powiedzieć co mam zrobić aby z tablicy N wrzucić pierw same nieparzyste a potem same parzyste do B ? Głowie się bo przecież w takim wypadku nadpisuje co drugi .
  • Poziom 4  
    WItam wszystkich , jak tablicę, w której są losowe liczby przepisać do drugiej tak aby były w niej uporządkowane , pierw nieparzyste a potem parzyste?
  • Pomocny post
    Poziom 32  
    Nawet po poprawce od rufek90 program jest beznadziejny.
    Podstawowe wady:
    • Wszędzie zakłada się rozmiar tablicy równo 20, w razie zmiany decyzji - trzeba przeorać cały kod
    • Losowanie w granicach nadal skopane
    • Owszem przekopiowujesz parzyste/nieparzyste ale zostają zapisane "byle gdzie" - nie pod rząd
    • Przekopiowanie (funkcjonalność) łączysz z wyświetleniem, więc nawet nie zauważyłeś poprzedniej wady
    • oraz kilka drobnych uwag - są w komentarzach
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 4  
    Dziękuję uprzejmie za kod, ale wole siedzieć 10h i zrobić sam niż to skopiować na zajęcia, wiele z komend Twojego kodu jest dla mnie niezrozumiała, problem jest taki że próbuję z 1 tablicy wrzucić teraz elementy do drugiej tak aby ta druga była posortowana w kolejności pierw nieparzyste potem parzyste. Jeszcze raz dziękuję za poświęcony czas ale nie rozumiem a kopiować bezmyślnie nie będę.
  • Poziom 4  
    Ja pokażę kod i co zrobiłem, zarywam noc a jutro wykłady, ale jak zrozumiem będzie warto:
    A więc zrobiłem licznik i teraz wiem ile mam parzystych i ile nieparzystych, teraz chcę do zadeklarowanej tablicy B[] wrzucić kolejno wartości z tablicy N[] lecz w kolejności nieparzyste parzyste, podpowiedz mi , wyczuwam sortowanie.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dodano po 11 [minuty]:

    Teraz zmienilem kod i w B przy indeksach takich samych jak N wyświetla parzyste, a tam gdzie sa nieparzyste 0 nie wiem co dalej:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Dodano po 32 [minuty]:

    Ktoś mi powie jak powinien wyglądać warunek sortowania dla nieparzystych parzystych aby je posortowało najpierw te, następnie te >
  • Poziom 32  
    1. Przeczytaj przynajmniej komentarze do kodu który podałem i zastosuj te co rozumiesz na swoim kodzie, o te które nie rozumiesz zapytaj.
    2. Policzyłeś ile jest parzystych a ile nieparzystych ale co ci to dało?
    3. Nie rozumiem po kiego wpisujesz 0 do B[i] - nić ci to nie da, 0 może być jedną z wylosowanych wartości.
    4. Aby wpisywać do B bez dziur musisz mieć osobną zmienną do indeksacji tego B, w moim kodzie to była zmienna k.

    pag15 napisał:
    Ktoś mi powie jak powinien wyglądać warunek sortowania dla nieparzystych parzystych aby je posortowało pierw te i pierw te >
    Podałem dwa warianty, jest jeszcze kilka ale je z całą pewnością na tym etapie nie zrozumiesz.
  • Poziom 4  
    Ciężko mi się połapać, Inaczej czy istnieje warunek który mogę tu wpisać aby sortował parzyste nieparzyste ? :

    [code]
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 32  
    Chcesz podać warunek w warunku tak aby zaczęło sortować?
    Pisanie programów metodą prób i błędów z góry skazano na porażkę.
    Ogarnij to co zamierzasz zrobić zanim zaczniesz robić.
  • Poziom 4  
    Pierw przepisałem do tablicy B wartości z N a teraz bawię się wartościami w B[]
  • Poziom 32  
    A jak jeszcze wpiszesz do tablic C, D, E ,F, G, H to będziesz bliżej rozwiązania?
  • Poziom 4  
    Można wpisać do tablicy c nieparzyste do tablicy d parzyste i je zestawić ale to nie jest dla mnie optymalne. Co powinienem zrobić żeby to poszło w dobrą stronę w moim kodzie ?
  • Poziom 32  
    Wywalić ten kod i napisać od nowa.
    W twoim kodzie nie ma ani jednego sensownego wiersza.
  • Poziom 4  
    ehhhh szukaj a nie znajdziesz
  • Poziom 32  
    Pokroiłeś deskę w trójkąty i pytasz gdzie masz wbić gwoźdź aby wyszedł taboret?
    Zaś na stwierdzenie, że już skopałeś - obrażasz się?
    Z takim podejściem stolarz z ciebie nie wyjdzie.
  • Poziom 4  
    hmm inaczej, odłóżmy program na dalszy plan, zastanówmy się jak logicznie posortować elementy, jak to ma wyglądać w głowie. a gdyby tak każdą liczbę nieparzystą napotkaną w szufladce N[] wrzucać KOLEJNO do B od lewej a w odwrotnym przypadku parzystą do prawej.
  • Poziom 4  
    Właśnie ją czytałem znowu :3

    Dodano po 12 [minuty]:

    Nie rozumiem wg tego sortEven które czytam w twoim kodzie, wytłumacz mi jak to działa.
  • Poziom 32  
    Może być nieco prostsza o ile będzie kopiować do innej tablicy zamiast sortowania "w miejscu":
    Kod: c
    Zaloguj się, aby zobaczyć kod


    pag15 napisał:
    Nie rozumiem wg tego sortEven które czytam w twoim kodzie, wytłumacz mi jak to działa.

    1. pomiń wszystkie nieparzyste na początku.
    2. pomiń wszystkie parzyste na końcu
    3. wymień parzysty na początku z nieparzystym na końcu.
    4. przejdź do punktu 1 o ile nie skończyliśmy sortowania.
  • Poziom 4  
    Powoli łapie, gdzie jest warunek ,, Pomiń wszystkie nieparzyste na początku''
  • Poziom 32  
    pag15 napisał:
    Powoli łapie, gdzie jest warunek ,, Pomiń wszystkie nieparzyste na początku''
    Mówisz że potrzebujesz taboret, pokazuje ci taboret. To pytasz a gdzie ma kółka. No nie ma taboret kółek - nie musi.

    Jak nie czaisz bez klamerek to ich sobie dopisz.
    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 4  
    Wystrugałem żelazny taboret, tylko program nie wyświetla koniecznie togo czego pragnę ! Wyświetla dużo ale za i za dużo !! O czym zapomniałem ? Program miał za zadanie poukładać elementy tablicy N w Tablicy B w kolejności pierw nieparzysta potem parzyste. Na dole zamieszczam jpg.

    [code]
    Kod: c
    Zaloguj się, aby zobaczyć kod

    [C++] wywołanie funkcji - za duzo argumentow
  • Poziom 24  
    Klamry. Zgadnij, gdzie - nie podaję odpowiedzi na talerzu bo masz się nauczyć :)
  • Poziom 4  
    Wyszedlem na miasto nie moge skompilowac, czy to ma byc zagnieżdzona petla?