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

Błąd przy wyświetlaniu danej liczby z ciągu Fibbonaciego

0 głosów
391 wizyt
pytanie zadane 19 sierpnia 2016 w C i C++ przez Marcin Skrok Nowicjusz (120 p.)
#include <iostream>

using namespace std;

long double fibbo[100000];


int main()
{
    int liczba=2;

    fibbo[0]=1;
    fibbo[1]=1;

    while (liczba<=11)
    {
        fibbo[liczba]=fibbo[(liczba-2)]+fibbo[(liczba-1)];        
        liczba++;
    }
    cout<<fibbo<<endl;

    return 0;
}

Witam, staram się stworzyć pętlę, która będzie wyświetlała daną liczbę ciągu Fibbonaciego (liczbę tę ustalamy poprzez ilość powtórzeń pętli, bez wprowadzania danych z strumienia wejściowego) i niezależnie od tego ile razy tę pętlę powtórzę za każdym razem wychodzi mi taki wynik. Czy ktoś mógłby mi wyjaśnić dlaczego, to nie chce działać?  W tym przypadku liczbę powtórzeń ustawiłem na 10.

 

 

2 odpowiedzi

0 głosów
odpowiedź 19 sierpnia 2016 przez Porcupine Nałogowiec (31,560 p.)
Bo wypisałeś fibbo (adres komórki w pamięci), zamiast fibbo[liczba].
komentarz 19 sierpnia 2016 przez Marcin Skrok Nowicjusz (120 p.)
edycja 19 sierpnia 2016 przez Marcin Skrok
W którym miejscu? Dopiero zaczynam i nie bardzo rozumiem :)
Co muszę zrobić, aby to zaczęło działać?
komentarz 19 sierpnia 2016 przez Spiral Obywatel (1,330 p.)

Na samym końcu, zaraz nad return, powinieneś zamienić

cout<<fibbo<<endl;

na

cout<<fibbo[liczba-1]<<endl;


-1 dlatego że na końcu pętli było nadmiarowe liczba++

Podaję to w komentarzu bo autor odpowiedzi napisał praktycznie to samo, tylko że krócej.

 

0 głosów
odpowiedź 19 sierpnia 2016 przez MetRiko Nałogowiec (37,110 p.)

Oj człowieku.. to są podstawy podstaw.. 
Stosujesz tablicę, a nie wiesz jak wypisać z niej wartości?
Nazwa tablicy to jednocześnie adres jej pierwszego elementu..
Pisząc: cout<<fibbo<<endl; 
Na wyjściu otrzymasz adres pierwszego elementu twojej tablicy.. czyli de facto &fibbo[0];
Jeżeli chcesz wypisać wszystkie elementy tablicy to musisz w tym celu użyć pętli (w twoim przypadku najlepiej for).
Dla 10 elementów będzie:
for(size_t i=0; i<10; ++i) cout<<fibbo[i]<<" ";

Podobne pytania

0 głosów
2 odpowiedzi 728 wizyt
pytanie zadane 7 lipca 2015 w C i C++ przez A1ien1385 Nowicjusz (150 p.)
0 głosów
1 odpowiedź 261 wizyt
pytanie zadane 13 stycznia 2021 w Java przez komboboost0 Użytkownik (570 p.)
0 głosów
1 odpowiedź 1,435 wizyt

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...