Witam Serdecznie forumowiczów!
Chciałbym napisać program w języku C, który na podstawie tablicy dziewięcioelementowej (tab[9]) wykonuje sortowanie i zapisuje wyniki w drugiej tablicy (posort[9]). Po posortowaniu pierwsza tablica pozostaje bez zmian, zaś druga zawiera posortowane wartości pierwszej w kolejności od najmniejszej do największej.
Problem polega na tym, że indeksy kolejnych najmniejszych wartości mają być zaznaczane w wartościach tablicy trzeciej (id[9]) kolejno jako 1. Wszystkie kroki programu mają być później wyświetlone na ekranie. Wyniki miałyby wyglądać przykładowo tak:
tab[5 8 23 446 223 554 11 2 99]
id[0 0 0 0 0 0 0 0 0]
posort[0 0 0 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[0 0 0 0 0 0 0 1 0]
posort[2 0 0 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 0 0 0 0 0 0 1 0]
posort[2 5 0 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 0 0 0 0 0 1 0]
posort[2 5 8 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 0 0 0 0 1 1 0]
posort[2 5 8 11 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 0 0 1 1 0]
posort[2 5 8 11 23 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 0 0 1 1 1]
posort[2 5 8 11 23 99 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 0 0 1 1 1]
posort[2 5 8 11 23 99 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 1 0 1 1 1]
posort[2 5 8 11 23 99 223 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 1 1 0 1 1 1]
posort[2 5 8 11 23 99 223 446 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 1 1 1 1 1 1]
posort[2 5 8 11 23 99 223 446 554]
Program, który udało mi się naskrobać wygląda tak:
Wykonuje całą procedurę, ale mam problem z prawidłowym zapętleniem.
Będę wdzięczny za wszelką pomoc.
Pozdrawiam.
Chciałbym napisać program w języku C, który na podstawie tablicy dziewięcioelementowej (tab[9]) wykonuje sortowanie i zapisuje wyniki w drugiej tablicy (posort[9]). Po posortowaniu pierwsza tablica pozostaje bez zmian, zaś druga zawiera posortowane wartości pierwszej w kolejności od najmniejszej do największej.
Problem polega na tym, że indeksy kolejnych najmniejszych wartości mają być zaznaczane w wartościach tablicy trzeciej (id[9]) kolejno jako 1. Wszystkie kroki programu mają być później wyświetlone na ekranie. Wyniki miałyby wyglądać przykładowo tak:
tab[5 8 23 446 223 554 11 2 99]
id[0 0 0 0 0 0 0 0 0]
posort[0 0 0 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[0 0 0 0 0 0 0 1 0]
posort[2 0 0 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 0 0 0 0 0 0 1 0]
posort[2 5 0 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 0 0 0 0 0 1 0]
posort[2 5 8 0 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 0 0 0 0 1 1 0]
posort[2 5 8 11 0 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 0 0 1 1 0]
posort[2 5 8 11 23 0 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 0 0 1 1 1]
posort[2 5 8 11 23 99 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 0 0 1 1 1]
posort[2 5 8 11 23 99 0 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 0 1 0 1 1 1]
posort[2 5 8 11 23 99 223 0 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 1 1 0 1 1 1]
posort[2 5 8 11 23 99 223 446 0]
tab[5 8 23 446 223 554 11 2 99]
id[1 1 1 1 1 1 1 1 1]
posort[2 5 8 11 23 99 223 446 554]
Program, który udało mi się naskrobać wygląda tak:
Kod: C#
Wykonuje całą procedurę, ale mam problem z prawidłowym zapętleniem.
Będę wdzięczny za wszelką pomoc.
Pozdrawiam.