• 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

Object Storage Arubacloud
0 głosów
163 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 392 wizyt
pytanie zadane 7 lipca 2015 w C i C++ przez A1ien1385 Nowicjusz (150 p.)
0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 13 stycznia 2021 w Java przez komboboost0 Użytkownik (570 p.)
0 głosów
1 odpowiedź 760 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...