banalna tablica - co jest? (c/c++)

0

Witam,
Chcę tablicę a[i] uzupełnić podanymi przeze mnie liczbami. W sieci wyczytałem, że wystarczy napisać tak:

a[i]={5,4,3,2,5};

Mi jednak wyskakuje błąd i program wgl nie chce się kompilować. O co chodzi?

0

A co to jest to i?

0

[i] to taka zmienna mająca potem robić za kolejne indeksy, w dalszej części programu. Inaczej powinieniem to zapisać? Bo jak piszę np. a[]=.......... (bo [] powinien się rozmiar dopasować) też nie działa.. tak samo jak nie działa, gdy linijkę wcześniej zadeklaruję, że i=4...

0

Czyli domyślam się, że i to int. W takim razie jeżeli nie jest to const int to nie możesz tak zrobić(z pewnym wyjątkiem) - poczytaj o tablicach dynamicznych. Tablica sama z siebie nie zmieni rozmiaru.

0

W jaki więc sposób w tej sytuacji najłatwiej będzie uzupełnić tę tablicę?
Wrzucę fragment kodu, zależy mi na tym, by się opierać na tych już zmiennych, ale bez przesadnych kombinacji:

 int n, j, a[i], c[i], b, tab[i][j];    
    n=5; 
    
    a[i]={5,4,3,2,5}; 
    c[i]={6,3,2,5,4};  
0

Tak się po prostu nie da. Jeżeli wielkość tablicy ma być zależna od jakiejś nie stałej zmiennej to musi to być tablica dynamiczna.
Dodatkowo taki zapis: a[i]={5,4,3,2,5}; w tym wypadku nie ma sensu. Zresztą w podany sposób można tylko inicjalizować tablice (czyli ustawiać wartości w momencie ich deklaracji).

int i, *a;
... //tutaj i przyjmie jakąś konkretną wartość (np. zostanie podana przez użytkownika)
a = new int[i];
a[0] = ...;
a[1] = ...;
//itd.

Napisz co chcesz osiągnąć, bo pewnie jest dużo lepszy sposób rozwiązania tego problemu, np. vector

0

albo deklarujesz ją tak

const int i = 5;
int a[i] = {1,2,3,4,5};

albo tak

int a[5] = {1,2,3,4,5};
2

Albo tak:

int a[] = {1,2,3,4,5};
0

mylisz definicję tablicy z wypełnieniem jej wartością.

takie coś

int tablica[5];

oznacza stworzenie tablicy.

takie coś

int tablica[5] = {1,2,3,4,5};

oznacza stworzenie tablicy i jednocześnie zapełnienie jej wartością

ale takie coś

int tablica[5];
tablica[5] = {1,2,3,4,5};

oznacza próbę przypisania wartości {1,2,3,4,5} do elementu tablicy o indeksie 5. to jest błąd.

na chłopski rozum powinno działać coś takiego

int tablica[5];
tablica = {1,2,3,4,5};

ale na to niestety kompilator nie pozwoli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1