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

Program ciąg Fibonacciego gdzie jest problem

Object Storage Arubacloud
0 głosów
806 wizyt
pytanie zadane 6 września 2015 w C i C++ przez kamilos027 Początkujący (470 p.)

Witam zaczalem uczyc sie z kursu pana Miroslawa Zelenta i dlaczego program nie dziala jak w filmie?

// program wyznaczający liczby fib

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
	// deklaracja tablicy na liczby fib
	float fib[1000];

	// ilosc liczb fib do wyznaczenia
	int ilosc_liczb;

	// dwa pierwsze wyrazy to 1
	fib[0] = 1;
	fib[1] = 1;

	// podajemy ile wypisac liczb fib
	cout << "Podaj ile chcesz wypisac licz fib: ";
	cin >> ilosc_liczb;

	// obliczamy liczby fib
	for (int i = 0; i < ilosc_liczb;  i++)
	{
		fib[i] = fib[i - 1] + fib[i - 2];
	}

	// wypisujemy podana ilosc liczb
	for (int i = 0; i < ilosc_liczb; i++)
	{
		cout << "Liczba " << i + 1 << ": " << fib[i] << endl;
	}

	// zlota proporacja
	cout << "Zlota proporacja: " << fib[ilosc_liczb - 1] / fib[ilosc_liczb - 2] << endl;

	// najwieksza liczb fib
	cout << "Najwieksza liczba fib: " << fib[ilosc_liczb - 1];

	return 0;
}

Takie pojawia mi się w konsoli http://s30.postimg.org/mtqbhsmcx/kod.png

Uzywam programu Microsoft Visual Studio Community 2015.

2 odpowiedzi

+1 głos
odpowiedź 6 września 2015 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 6 września 2015 przez kamilos027
 
Najlepsza

Nie używaj typu float. Zmień go sobie na np. unsigned long long int.

komentarz 6 września 2015 przez Patrycjerz Mędrzec (192,320 p.)

Także nadaj początkową wartość zmiennej i w pętlach na 2, a nie 0, bo pierwsze dwie liczby masz. Tak to wychodzisz poza tablicę.

0 głosów
odpowiedź 6 września 2015 przez kamilos027 Początkujący (470 p.)
przywrócone 6 września 2015 przez kamilos027

A moge zrobic long double jak w filmie? Pobralem paczke z bloga i zauwazylem juz blad. Czym rozni sie unsigned long long int od long double?

komentarz 6 września 2015 przez Patrycjerz Mędrzec (192,320 p.)

Typ double jest liczbą zmiennoprzecinkową, czyli posiadającą część ułamkową. Int (integer), jak sama nazwa wskazuje, jest liczbą całkowitą. W tej sytuacji korzystanie z liczb ułamkowych jest bezsensowne, więc używaj liczb całkowitych. Dopisanie long long umożliwia zwiększenie pojemności zmiennej. Dane wyrazy ciągu Fibonacciego nie zawierają wartości ujemnych, więc stosuj też unsigned. Spowoduje to, że zmienna będzie miała większą pojemność, jeśli chodzi o wartości dodatnie.

komentarz 6 września 2015 przez kamilos027 Początkujący (470 p.)

Jak zmienilem na unsigned long long int to wtedy nie dziala obliczanie zlotej proporacji.

komentarz 6 września 2015 przez Patrycjerz Mędrzec (192,320 p.)

Zmień na long double.

Podobne pytania

0 głosów
1 odpowiedź 989 wizyt
0 głosów
0 odpowiedzi 451 wizyt
pytanie zadane 3 lutego 2021 w Python przez AgentTecza Obywatel (1,810 p.)
–1 głos
5 odpowiedzi 907 wizyt
pytanie zadane 17 kwietnia 2015 w C i C++ przez hakiros54 Obywatel (1,160 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

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

...