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?
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?
A co to jest to i?
[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...
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.
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};
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
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};
Albo tak:
int a[] = {1,2,3,4,5};
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.