Sortowanie po imieniu
Ostatnio zmodyfikowano 2015-12-08 20:56
Garniturek Temat założony przez niniejszego użytkownika |
» 2015-12-07 18:00:45 Wiem o vectorach i o funkcji sortującej, ale moim zadaniem jest napisanie tego w ten sposób jaki próbuje, czyli samemu napisać sortowanie bąbelkowe biorąc imię z bazy danych struct. Oczywiście poczytam, ale to mi w zadaniu nie pomoże :) |
|
carlosmay |
» 2015-12-07 19:38:26 for( int i = 0; i < n; i++ ) { for( int j = 0; j = n - 1; j++ ) { if( o[ j ].nazwisko > o[ j + 1 ].nazwisko ) { indeks temp = o[ j ]; o[ j ] = o[ j + 1 ]; o[ j + 1 ] = temp; } } }
Może tak sprawdź. |
|
Garniturek Temat założony przez niniejszego użytkownika |
» 2015-12-07 19:47:01 To samo. Sortowanie się nie wykonuje oraz ostatni element nie jest wyświetlany. Ma ktoś pomysł co jest złe, bo szału dostaję z tym zadaniem :O |
|
carlosmay |
» 2015-12-07 21:45:03 struct indeks { string name; };
void sortuj( indeks * o, int size ) { for( int i = 0; i < size; i++ ) for( int j = 0; j < size - 1; j++ ) if( o[ j ].name > o[ j + 1 ].name ) { indeks temp = o[ j ]; o[ j ] = o[ j + 1 ]; o[ j + 1 ] = temp; } }
int main() { indeks nms[ 5 ]; nms[ 0 ].name = "jksjdk"; nms[ 1 ].name = "akjdk"; nms[ 2 ].name = "wzjdkjf"; nms[ 3 ].name = "konkd"; nms[ 4 ].name = "bdfdfa"; sortuj( nms, 5 ); for( int i = 0; i < 5; i++ ) cout << nms[ i ].name << endl; }
To działa prawidłowo i jest napisane na podstawie algorytmu z poprzedniego posta. Problemem w tym programie jest sterowanie indeksami w 'main()'. Dodawanie osób zrób w pętli w 'case 1'. Do funkcji wypisującej i sortującej przekazuj całą tablicę 'indeksy' i aktualny rozmiar. Jeśli ilość wpisów w tablicy ma być nieokreślonej wielkości (nie większej niż 30 - niezabezpieczona wielkość przed wyjściem poza tablicę), to pilnuj tylko ilość wpisów i tą wartość przekazuj jako rozmiar. Funkcje jakoś sobie radzą z wypisywaniem, a sortowanie które podrzuciłem działa również z programem. |
|
Garniturek Temat założony przez niniejszego użytkownika |
» 2015-12-08 20:56:03 Jeju jesteś wielki! Gdy zmieniłem na przekazywanie całej tablicy, a nie pojedynczego znaku wszystko działa jak natura chciała! Można na tym forum jakoś wynagradzać? |
|
1 « 2 » |