• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Argumenty funkcji void, linia 40, nie pojmuję gdzie jest błąd // EDIT - próba wykonania nowym sposobem

Aruba Cloud - Virtual Private Server VPS
0 głosów
280 wizyt
pytanie zadane 28 kwietnia 2016 w C i C++ przez Konrad Nabożny Stary wyjadacz (13,480 p.)
edycja 28 kwietnia 2016 przez Konrad Nabożny
Witam. Ulepszam mój program liczący schematem Hornera, a gdy już mamy funkcję kwadratową to liczy deltę, x0, x1, x2.

Gdzie robię niby błąd w linii 40!?

http://wklej.org/id/2360665/

 

@EDIT // EDIT

Nie chciałem robić kolejnego tematu, ponawiam więc ten. Zrezygnowałem z poprzedniego rozwiązania, ponieważ wszystko mi się poplątało i wróciłem do sposobu bez funkcji przeliczających poszczególne stopnie. Poszczególne ważne miejsca w kodzie opisałem w komentarzach. Moje pytanie brzmi, jak mogę zrobić tak, aby program liczył te przeklęte stopnie wyższe od trzeciego? Bardzo chciałbym zrobić to rekurencyjnie, tak aby można było zaczynać od dowolnego stopnia wielomianu, ale jak przyszło mi wysyłać do funkcji tablice danych, to poległem na całej linii. Przykładowe poprawne dane na wejściu dla stopnia czwartego (4 1 -4 7 -16 12), dla stopnia trzeciego (3 1 5 2 -8) dla stopnia drugiego - program liczy wtedy tylko deltę (2 3 5 2)

 

Kod: http://wklej.org/id/2362311/

 

Tak, nawet ja się w nim gubię.

2 odpowiedzi

0 głosów
odpowiedź 28 kwietnia 2016 przez criss Mędrzec (172,590 p.)

Deklarowane argumenty są zależne od innych argumentów. To aż dziwnie wygląda... Tym bardziej, że nie możesz używać argumentów funkcji poza jej ciałem.

Jeśli już podajesz rozmiar tablicy w stopien_wielomianu , to nic już więcej nie potrzebujesz do szczęścia. 2 ostatnie argumenty zadeklaruj jako wskaźniki, a w ciele odwołuj się normalnie jak do tablicy przez operator [], wiedząc, że jej rozmiar to stopien_wielomianu. Tyle.

komentarz 28 kwietnia 2016 przez Konrad Nabożny Stary wyjadacz (13,480 p.)
Zupełnie nie rozumiem co oznacza że nie mogę używać argumentów funkcji poza jej ciałem.

Próbowałem wykonać to na 10 różnych sposobów, ale za każdym razem naprawiając błąd, pojawiają się 2 kolejne. Co prawda mógłbym zrobić wszystko bez funkcji i nie było by problemu, ale chcę żeby ten kod jakkolwiek wyglądał. :/
komentarz 28 kwietnia 2016 przez criss Mędrzec (172,590 p.)

Deklaracja argumentów to jeszcze nie ciało. Ciało to to między klamrami { }.

Napisałem ci przecież jak możesz to zrobić.

void wielomian_3(int stopien_wielomianu, int wynik, int mnoznik, int czy_odwrocic, int* stopien_wielomianu_tab, int* nowa_wartosc)
{
//wewnątrz funkcji normalne odwołania jak do tablicy
//np.
stopien_wielomianu_tab[3];
nowa_wartosc[2];
}

Operator [] zwraca to na co wskazuje ptr przesunięty o n: *(ptr + n). ptr to wskaźnik na którym używasz operatora, a to liczba w nawiasach kwadratowych. Mam nadzieje, że teraz rozumiesz.

Btw. nie wiem po co te argumenty wynik, mnoznik, czy_odwrocic skoro i tak w ciele funkcji natychmiastowo coś do nich przypisujesz i nie ma żadnego znaczenia co się tam znalazło w chwili wywołania.

komentarz 28 kwietnia 2016 przez Konrad Nabożny Stary wyjadacz (13,480 p.)
Dzięki za rozwiązanie. Co do tych zmiennych wynik, mnoznik itp. to po prostu chwile wcześniej przeniosłem wszystko z maina. Funkcji jeszcze nie było i nie zdążyłem wszystkiego ogarnąć.
0 głosów
odpowiedź 28 kwietnia 2016 przez KubenQPL Maniak (62,820 p.)
A spróbuj nie określać wielkości tablicy w argumentach. Jako argumenty daj poprostu int tablica[].

Podobne pytania

0 głosów
0 odpowiedzi 232 wizyt
pytanie zadane 27 maja 2016 w C i C++ przez mrdropex Początkujący (430 p.)
0 głosów
3 odpowiedzi 3,572 wizyt
pytanie zadane 2 kwietnia 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)
0 głosów
1 odpowiedź 375 wizyt

93,271 zapytań

142,266 odpowiedzi

322,256 komentarzy

62,588 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...