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

question-closed Kurs C++, odcinek 5, error

Object Storage Arubacloud
0 głosów
189 wizyt
pytanie zadane 5 marca 2017 w C i C++ przez Dziobakanto Nowicjusz (150 p.)
zamknięte 6 marca 2017 przez Dziobakanto
Piszę sobie kod wraz z Panem Mirosławem na kursie, klikam F9 i wyskakuje error:
Error: invalid types: 'long double [100000] [long double]' for array subscript

Pomocy! Nie mam pojęcia co z tym zrobić!

Kod:
#include <iostream>
#include <iomanip>

using namespace std;

long double fib[100000], n;

int main()
{
    cout << "Ile liczb Fibonacciego mam wyznaczyc:" << endl;
    cin >> n;

    fib[0]=1;
    fib[1]=1;

    for(int i=2; i<n; i++)
    {
       fib[i] = fib[i-1] + fib [i-2];
    }
cout << setprecision(10000);
// for(int i=0; i<n; i++)
//  {
//     cout << endl << "Wyraz nr " << i+1<<": " << fib[i];
//  }

cout << endl << "Wyraz nr " << n << ":" << fib [n-1];
    return 0;
}

 

komentarz zamknięcia: Otrzymałem odpowedź

1 odpowiedź

+2 głosów
odpowiedź 5 marca 2017 przez niezalogowany
wybrane 6 marca 2017 przez Dziobakanto
 
Najlepsza
> long double fib[100000], n;

> cout << endl << "Wyraz nr " << n << ":" << fib [n-1];

 

n jest liczbą zmiennoprzecinkową, a, jak pisze do ciebie kompilator, indeks tablicy nie może taką być. Który to bowiem element o numerze 172.72823 ? Tablica w C++ może być indeksowana wyłącznie liczbami całkowitymi.
komentarz 5 marca 2017 przez Dziobakanto Nowicjusz (150 p.)
a po ludzku? bo dopiero zaczynam sie uczyc c++
komentarz 5 marca 2017 przez niezalogowany
Ale czego nie rozumiesz? Indeks tablicy nie może być liczbą rzeczywistą, musi być całkowitą.
komentarz 5 marca 2017 przez Dziobakanto Nowicjusz (150 p.)
...
komentarz 5 marca 2017 przez Marchewka900 Bywalec (2,970 p.)
Inaczej mówiąc tablica musi być zainicjowana zmienną typu "int" (Liczbą całkowitą). Tablica nie może mieć wielkości dla przykładu 3,14. A w takim wypadku chcesz zainicjować tablicę zmienną typu long double.
komentarz 5 marca 2017 przez Dziobakanto Nowicjusz (150 p.)
hmmm, tak bylo pokazane w odcinku, po to, aby tablica mogla przechowywac wiecej.
komentarz 5 marca 2017 przez niezalogowany
mylisz zawartość tablicy z numerkiem pozycji w tablicy.

long double kaczka[100];

 

zawiera 100 liczb typu long doublem więc dużych, ale ma 100 pól/indeksów. Nie może mieć ułamkowego numera. Indeksowanie tablicy liczbą double nie ma sensu, bo to liczba rzeczywista, więc również ułamkowa. Nie ma pola o numerze niecałkowitym.

Również nie potrzebujesz dużego zakresu na indeksy. W programie masz 100 tysięcy longdoubli (co też jest raczej słabo uzasadnione, ale OK), a int spokojnie na taką wartość sięga.
komentarz 5 marca 2017 przez Dziobakanto Nowicjusz (150 p.)
no dobra, ale kod z odcinka mi nie dziala, a na odcinku tak
komentarz 5 marca 2017 przez niezalogowany

 

A jaki jest kod z odcinka? Bo jak ten, co wkleiłem powyżej, to jest tam całkowite n a nie rzeczywiste. Ale owszem, Mirek to tak brzydko zapisał w 1 linii, w dodatku zupełnie niepotrzebnie jako zmienną globalną. Zapisz to w dwóch oddzielnych linijkach i dobrze ustal typy.

komentarz 6 marca 2017 przez Dziobakanto Nowicjusz (150 p.)
Ok, załapałem :D

Dziękuję serdecznie wszystkim za pomoc!

Podobne pytania

0 głosów
2 odpowiedzi 815 wizyt
pytanie zadane 21 września 2015 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 202 wizyt
pytanie zadane 3 listopada 2017 w C i C++ przez Fergus Obywatel (1,010 p.)
0 głosów
2 odpowiedzi 241 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!

...