Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Pole struktur v C - výpis prvků podle kritérií

Zdravím. Prosím někoho zasvěceného, kdo má čas, aby mi poradil s následujícím.

Účelem programu je číst znaky ze standardního vstupu a po ukončení vytisknout na standardní výstup podle četnosti. Znaky se stejnou četností musí být seřazeny podle ord. hodnoty a pokud četnost přeteče (má se pracovat s datovým typem unsigned char), vytisknou se místo četnosti tři písmena. Mám vytvořené pole struktur o 255 prvcích (pro každý znak jeden), do kterého ukládám četnost znaků (proměnná sum) a také stav, zda četnost přetekla (proměnná full typu bool). Např. přečtu znak 'a', tak do pole struktur s indexem 97 přičtu 1 k proměnné sum a pokud je četnost maximální, nastavím proměnnou full na true (stav této proměnné testuji ještě před inkrementací). Tolik k načítání. A teď je potřeba prvky seřadit podle četnosti. Řešil jsem to pomocí selection sort. Ještě bylo nutné přidat do struktury další proměnnou ord, která představovala ordinální hodnotu znaku (pořadí se měnilo, tak už pro určení ord. hodnoty nestačil pouhý index v poli, jestli mi rozumíte). Znaky se tedy seřadily podle četnosti od nejvyšší a drůhým průchodem (tentokrát bubble sort) se řadily jen znaky se stejnou četností podle ord. hodnoty. Nakonec program vypsal strukturu na stdout. To vše funguje správně. Asi se ptáte, co mám teda za problém. Jde o to, že k seřazování struktury (prej) vůbec nemusí dojít a přesto lze znaky vypisovat podle zadání. Prosím o lehké nakopnutí, jak to udělat. Jako příklad stačí i obyčejné pole řekněme o 10 číslech {9,4,6,2,7,1,8,3,15,32}. Jak z něj vypsat čísla seřazená od nejvyššího bez použití nějaké řadící metody? Děkuji.

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny