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

Problem z funkcją rekurencyjną

Object Storage Arubacloud
0 głosów
415 wizyt
pytanie zadane 28 maja 2018 w C i C++ przez TenNowy Nowicjusz (210 p.)

Witam mam zadanie:
Napisz rekurencyjną funkcję sprawdzającą czy wśród elementów tablicy są liczby mniejsze od 2. Parametrami funkcji są tablica i liczba elementów.
Tu mój kod, problem z tym że czy w tablicy są elementy większe czy mniejsze od 2 to i tak wyświetla prawdę :

bool czyMniejsza(int tab[], int n)
{
    if(n==1)
{
    if(tab[0]<2)
    {
        return true;
    }
}
else
{
        if(tab[n]<2)
    {
        return true;
    }
    else if(tab[n]>2) return false;
    czyMniejsza(tab,n-1);

}
}

 

1 odpowiedź

0 głosów
odpowiedź 28 maja 2018 przez kenjiro244 Dyskutant (8,600 p.)
wybrane 28 maja 2018 przez TenNowy
 
Najlepsza
Więc najlepiej jak już coś napiszesz i nie działa spróbuj np. pisząc na kartce co się będzie działo z przykładowymi zmiennymi przesłanymi na początku.

Jak zauważysz w momencie kiedy ostatni element tablicy będzie mniejszy niż 2 funkcja zwróci ci true i zakończy się nie wywołując kolejny raz funkcji. Jeżeli ostatni będzie większy zwróci false i też się zakończy czyli właściwie sprawdzasz tylko i wyłącznie ostatni element.  

Edit. No i jeszcze dlatego zwraca ci zawsze true prawdopodobnie bo liczba elementów tablicy jest różna od indeksu ostatniego elementu. tab[0, 1, 2] elementów jest 3 ale jeśli być chciał sprawdzić ostatni to sprawdzasz tab[2] > 2.

Podobne pytania

0 głosów
1 odpowiedź 404 wizyt
0 głosów
1 odpowiedź 973 wizyt
pytanie zadane 21 maja 2018 w C i C++ przez Azalich Nowicjusz (140 p.)
0 głosów
1 odpowiedź 907 wizyt

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...