Sortowanie malejące tablicy dwuwymiarowej kolumnami

Odpowiedz Nowy wątek
2015-01-25 20:18
0

Dzień dobry! Jednym z elementów mojego programu ma być sortowanie malejące tablicy 2D kolumnami. Oto fragment kodu, o który mi się rozchodzi. Program się kompiluje jednakże wartości zwracane po sortowaniu przynajmniej w jednym wierszu są nieprawidłowe, przede wszystkim przy wartościach ujemnych i zerze (elementami tablicy są liczby z przedziału <-20, 19>.

Sortowanie ma postać np:
przed:
5 4 6
-7 8 2
1 2 -1

po:
5 8 6
1 4 2
-7 2 -1


#include<iostream>
#include<cstdlib>
#include<cmath>
#include<ctime>
using namespace std;

void wypelnienie(int tab[5][5]){
    srand(time(0));
    for (int i = 0; i < 5; i++)
        for (int j = 0; j < 5; j++)
        {
            tab[i][j] = -20 + rand() % (88 + 19);
        }
}

void wypisanie(int tab[5][5])
{
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            cout << tab[i][j] << "\t";
        }
        cout << endl;
    }
}

void sortowanie(int tab[5][5]){
    int i, j, k, temp;
    for (j = 0; j<5; j++)
    {
        for (k = 0; k<4; k++)
        {

            for (i = 0; i<5; i++)
            {
                if (tab[i][j]<tab[i + 1][j])
                {
                    temp = tab[i][j];
                    tab[i][j] = tab[i + 1][j];
                    tab[i + 1][j] = temp;
                }
            }
        }
    }
}
int main(void){
    int tab[5][5];
    wypelnienie(tab);
    wypisanie(tab);
    cout << endl;
    sortowanie(tab);
    wypisanie(tab);
    system("Pause");
    return 0;
}

Pozostało 580 znaków

2015-01-25 21:07
0

Do zamknięcia mam błąd :)
przy 3 pętli wychodziłem po za granice zamiast 5 powinna być 4

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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