Zmienna przyjmuje dziwną wartość

Paffciek
2011-01-27 09:56
Paffciek
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();
}

Pozostało 580 znaków

2011-01-27 10:39

Rejestracja: 16 lat temu

Ostatnio: 16 minut temu

0

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


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

Paffciek
2011-01-27 11:41
Paffciek
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 ;)

Pozostało 580 znaków

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