Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Sortowanie struktury

Ostatnio zmodyfikowano 2015-02-03 13:17
Autor Wiadomość
oem
Temat założony przez niniejszego użytkownika
Sortowanie struktury
» 2015-02-03 00:06:58
Witam,
Nidzie nie mogłem znaleźć odpowiedzi na moje pytanie, przeszukałem chyba pół internetu. Jeżeli chodzi o programowanie w c++ jestem totalnym zerem, więc pytanie może wydawać się dla niektórych trywialne.
Chodzi o sortowanie struktury. Teoretycznie sortuje...ale nie strukturę danych tylko poszczególny element - w tym przypadku rocznik.

C/C++
struct salon
{
    char marka[ 20 ];
    char model[ 20 ];
    int rocznik;
    float cena;
    float pojemnosc;
};

salon tab[ 100 ];

void sort()
{
    int y = 2;
    int pom, a;
    for( int j = 0; j < i; j++ )
    {
       
        pom = tab[ j ].rocznik;
        a = j - 1;
       
        //przesuwanie elementów większych od pom
        while( a >= 0 && tab[ a ].rocznik > pom )
        {
            tab[ a + 1 ].rocznik = tab[ a ].rocznik;
            --a;
        }
        tab[ a + 1 ].rocznik = pom;
    }
   
    for( int j = 0; j < i; j++, y++ )
    {
        gotoxy( 0, 0 ); cout << "Marka"; gotoxy( 15, 0 ); cout << "Model"; gotoxy( 30, 0 ); cout << "Rocznik"; gotoxy( 45, 0 ); cout << "Pojemnosc"; gotoxy( 60, 0 ); cout << "Cena" << endl;
        gotoxy( 0, y ); cout << tab[ j ].marka; gotoxy( 15, y ); cout << tab[ j ].model; gotoxy( 30, y ); cout << tab[ j ].rocznik; gotoxy( 45, y ); cout << tab[ j ].pojemnosc; gotoxy( 60, y ); cout << tab[ j ].cena << endl;
    }

Tyle kodu chyba wystarczy dla rozpoznania.

Z góry dziękuję za pomoc.
P-125914
pekfos
» 2015-02-03 12:56:48
Przypisuj do siebie całe obiekty struktury, a nie tylko rocznik. Najlepiej użyj std::swap() do zamiany elementów.
P-125941
oem
Temat założony przez niniejszego użytkownika
» 2015-02-03 13:11:52
A mógłbyś jakoś jaśniej mi to opisać, bo jak mówiłem mam nikłe pojęcie o cpp, dopiero się uczę.
P-125947
pekfos
» 2015-02-03 13:17:41
C/C++
std::swap( tab[ N ], tab[ M ] );
I wcześniej ustal indeksy N, M elementów do zamienienia.
P-125950
« 1 »
  Strona 1 z 1