[C++] Sortowanie bąbelkowe

Warlok20
Użytkownik
Użytkownik
Posty: 509
Rejestracja: 1 paź 2011, o 16:00
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 156 razy
Pomógł: 3 razy

[C++] Sortowanie bąbelkowe

Post autor: Warlok20 »

Witam.

Mam do napisania metodę, która posortuje mi macierz.

Oto mój kod:

Kod: Zaznacz cały

void sortuj(){
			int i=0;
			int j=0;
			int wartosc;
			for(i=0;i<=5;i++){
				for(j=0;j<=5;j++){
					if(tab[i+1][j]>tab[i][j]){
						wartosc=tab[i][j];
						tab[i][j]=tab[i+1][j];
						tab[i+1][j]=wartosc;
					}
				}
			}
			odczytajMacierz();
		}
Nie sortuje, lecz od razu zacina mi konsolę.
Gdzie popełniam błąd?
Ostatnio zmieniony 6 sty 2015, o 22:45 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Sortowanie bąbelkowe

Post autor: jarzabek89 »

Nigdzie nie masz zadeklarowanej tablicy.
Jaki rozmiar ma owa tablica, jeśli ją jakoś przekazujesz do funkcji.
Warlok20
Użytkownik
Użytkownik
Posty: 509
Rejestracja: 1 paź 2011, o 16:00
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 156 razy
Pomógł: 3 razy

[C++] Sortowanie bąbelkowe

Post autor: Warlok20 »

Tablica zadeklarowana jest wcześniej w public: \(\displaystyle{ int tab[6][6]}\)

Dodam, że ucina mi pierwszy wiersz i dodaje na końcu jeden z losowymi liczbami.
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Sortowanie bąbelkowe

Post autor: jarzabek89 »

Pierwszy błąd to taki, że odwołujesz się poza wymiar tablicy.

Kod: Zaznacz cały

tab[i+1]
Warlok20
Użytkownik
Użytkownik
Posty: 509
Rejestracja: 1 paź 2011, o 16:00
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 156 razy
Pomógł: 3 razy

[C++] Sortowanie bąbelkowe

Post autor: Warlok20 »

Wystarczy, że w drugim for zmienię do \(\displaystyle{ i<5}\)?
Jeżeli tak to dalej mam to samo.

Ostatni wiersz, w którym były dowolne liczby teraz zawiera cyfry z wiersza pierwszego.-- 6 sty 2015, o 22:36 --

Kod: Zaznacz cały

		void sortuj(){
			int i=0;
			int j=0;
			int k=0;
			int wartosc;
			for(i=0;i<=5;i++){
				for(k=0;k<5;k++){
				for(j=0;j<5;j++){
					if(tab[i][j]<tab[i][j+1]){
						wartosc=tab[i][j];
						tab[i][j]=tab[i][j+1];
						tab[i][j+1]=wartosc;
					}
				}
			}
			}
			odczytajMacierz();
		}
Poprawna wersja... na takim czymś dałem się złapać.

Dzięki za pomoc.
ODPOWIEDZ