Chcę wypełnić tablicę 5 elementową kolejnymi liczbami począwszy od 1.
Czyli powinienem uzyskać tablicę:
indeks: 0 1 2 3 4
wartość: 1 2 3 4 5
Mój kod:
int t[5]; //tablica
for (int a=0; a<5 ; )
{
t[a]=++a;
}
A tablica po jego wykonaniu ma taką zawartość (są to kolejne elementy tablicy):
1118312
1
2
3
4
Dlaczego element o indeksie 0 nie jest wypełniony?
Przecież ta pętla powinna działać tak:
- Inicjalizacja zmiennej a i przypisanie jej wartości 0 (a=0).
- Sprawdza warunek ( 0<5), jest spełniony. (a=0)
- Wykonuje ciało pętli: t[0]=1; Na początku a=0, więc w indeksie wpisuje 0. Następnie
zwiększa o 1 zmienną a (czyli 0+1=1) i przypisuje wartość zmiennej a, czyli a=1 i teraz ta
nowa (zwiększona) wartość zostaje pobrana przez operator przypisana i co za tym idzie
wpisana do zmiennej tablicy o indeksie 0, czyli t[0] = 1; - Sprawdzenie warunku 1<5 - spełniony.
- Ciało pętli: t[1]=2 i dalej znowu będzie sprawdzał warunek, itd.
Nawet jak wpisałem taki kod (dodałem wyświetlanie zawartości zmiennej a przez operacji na tablicy i po owej operacji:
int t[5];
for (int a=0; a<5 ; )
{
cout<<a<<"\t"; t[a]=++a; cout<<a<<endl;
}
To program wypisał (liczba z lewej to wartość przed wykonaniem operacji na tablicy t, zaś ten po prawej stronie to wartość po wykonaniu wspomnianej operacji:
0 1
1 2
2 3
3 4
4 5
A zawartość tablicy po wykonaniu tej pętli
wyświetlona kodem:
cout<<endl<<endl;
cout<<t[0]<<endl;
cout<<t[1]<<endl;
cout<<t[2]<<endl;
cout<<t[3]<<endl;
cout<<t[4]<<endl;
jest taka:
48799848
1
2
3
4