Zmienna przyjmuje dziwną wartość

0

Witam, mam dziwny problem, ponieważ napisałem prosty program do sortowania liczb, wpisanych przez użytkownika, tylko zawsze największa liczba zamienia się w 14. Nie wiem zupełnie dlaczego. Proszę o pomoc.

#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    int tablica[3];
    
    cout<<"Podaj a  ";
    cin>>tablica[0];
    cout<<"Podaj b  ";
    cin>>tablica[1];
    cout<<"Podaj c  ";
    cin>>tablica[2];
    cout<<"Podaj d  ";
    cin>>tablica[3];
    
    int tmp;
    
    for(int x=0;x<20;x++)
    {
    
    for(int a=0;a<4;a++)
    {
    int b=a+1;
    if(tablica[a]>tablica[b])
    {
     tmp=tablica[a];
     tablica[a]=tablica[b];
     tablica[b]=tmp;
    }
    }
    }
    cout<<"posortowane: "<<endl;
    for(int c=0;c<4;c++)
    {
    cout<<tablica[c]<<endl;
    }
    
    
    getch();
}
0

int tablica[3];
oznacza że tablica ma 3 (!) elementy. Ich indeksy to 0,1,2. NIE MA tam elementu o indeksie 3.

0

No dzięki ;) Żeby zaczęło działać jeszcze musiałem zmienić

for(int a=0;a<4;a++)

na for(int a=-1;a<3;a++)

 Ale już działa ;)

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