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

Program w C, undefined reference to

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
76 wizyt
pytanie zadane 6 dni temu w C i C++ przez Kamix02 Nowicjusz (120 p.)

Cześć! Problem dotyczy napisanego przeze mnie kodu, który ma za zadanie posortować tablicę jednowymiarową rosnąco, przy czym elementami są liczby pseudolosowe losowane z zakresu -5 do 5. Sortowanie ma być wykonane metodą przez wstawianie. Program ma być napisany za pomocą funkcji i wskaźników do tablic. Ilość elementów podanych przez użytkownika ma być podana z zakreu <8,22>. 

Problem dotyczy linijek kodu nr: 

16 - undefined reference to "wprowadz_dlugosc"

20 - undefined reference to "wyswietl_tab" 

21 - undefined reference to "insertion_sort" ]

23 - undefined reference to "wyswietl tab"

34 - undefined reference to "wprowadz_dlugosc"  

40 - undefined reference to "wprowadz_dlugosc" 

Jest ktoś w stanie trochę mnie naprowadzić co dodać do kodu i w którym miejscu? 

Z góry dzięki! 

int dlugosc_tab;
void wprowadz_dlugosc(int *tab);
void sprawdz_dlugosc(int *tab);
void insertion_sort(int *tab);
void losuj_liczby(int *tab);
void wyswietl_tab(int *tab);

int main()
{
    int tablica[dlugosc_tab];
    wprowadz_dlugosc(tablica);
    sprawdz_dlugosc(tablica);
    losuj_liczby(tablica);
    printf("Tablica wypełniona liczbami pseudolosowymi: \n");
    wyswietl_tab(tablica);
    insertion_sort(tablica);
    printf("Posortowana tablica: \n");
    wyswietl_tab(tablica);
    return 0;
}
void sprawdz_dlugosc(int *tab)
{
    int i;
    while(i=1)
    {
        if(dlugosc_tab<8 || dlugosc_tab>20)
        {
            printf("Tablica nie odpowiedniej dlugosci: \n");
            wprowadz_dlugosc(tab);
        }
        else
        {
            i=0;
            printf("Tablica nie moze miec 0 elementow!: \n");
            wprowadz_dlugosc(tab);
        }
    }
}
void losuj_liczby(int *tab)
{
    int i;
    srand (time(NULL));
    for(i=0; i<dlugosc_tab; i++)
        tab[i]= -5 + rand()%11;
    return;
}

 

komentarz 6 dni temu przez adrian17 Ekspert (327,920 p.)
OK, a gdzie masz np funkcję wprowadz_dlugosc zdefiniowaną?
komentarz 6 dni temu przez Kamix02 Nowicjusz (120 p.)
No wlasnie, dlugosc ma być zdefiniowana jako wartość >-5 i  <5. Tylko nie wiem za bardzo jak to zdefiniować i przede wszystkim w którym miejscu. Bo to nie ma być zmienna globalna, tylko to musi być zdefiniowane w module funkcji
komentarz 6 dni temu przez TOWaD Gaduła (3,770 p.)
komentarz 6 dni temu przez Kamix02 Nowicjusz (120 p.)
Dzięki wariacie, tylko muszę mieć to w C, nie w C++
komentarz 6 dni temu przez TOWaD Gaduła (3,770 p.)

Ja bym tego tak nie napisał, ale żeby się deklaracje funkcji zgadzały to taka bzdura tutaj [bez sortowania].

https://pl.wikibooks.org/wiki/C/malloc

komentarz 6 dni temu przez Oscar Nałogowiec (27,850 p.)

@Kamix02,  W linii 24 ma być podstawienie?

komentarz 5 dni temu przez TOWaD Gaduła (3,770 p.)

@Kamix02,   Wyjaśniając

- Bzdura,

1) Bo gdzie się nie spotkałem, to do funkcji zalecają rozmiar i wskaźnik pierwszego elementu się przekazuje ;

2) Inaczej bym pobudował funkcje, typy zwracane inty, wskazniki.

Ale w sumie fajnie wyszło z tymi funkcjami tak zbudowanymi

I moim zdaniem dobrze (miedzy gwiazdkami) taki gotowiec link w odpowiedzi.

tylko malloc powinien być na tym samym poziomie a nie w funkcji.

1 odpowiedź

0 głosów
odpowiedź 5 dni temu przez TOWaD Gaduła (3,770 p.)

co by było na niebiesko -> link

edit: stack

Podobne pytania

0 głosów
2 odpowiedzi 68 wizyt
0 głosów
2 odpowiedzi 227 wizyt
0 głosów
1 odpowiedź 405 wizyt

90,310 zapytań

138,909 odpowiedzi

311,121 komentarzy

60,024 pasjonatów

Motyw:

Akcja Pajacyk

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

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...