Mincovka

Téma: Procvičení učiva I

Procvičované učivo: předání parametru odkazem, dynamická alokace paměti, funkce, pole, cykly

Tato úloha je založena na jednoduchém problému, který každodenně řeší pokladní v nejrůznějších obchodech. Ne vždy dokáže zákazník zaplatit zboží přesným obnosem a je tudíž třeba mu jeho "přeplatek" vrátit a to nejlépe nejmenším počtem platidel, aby se minimalizovala možnost nějakého omylu.

Vašim úkolem tedy bude napsat v jazyku C funkci int mincovka(unsigned int castka, unsigned int **platidla), která tento problém řeší. Vstupním parametrem funkce je nezáporný celočíselný finanční obnos castka, který je třeba zákazníkovi vrátit nejmenším možným počtem platidel. Výstupem funkce je počet použitých platidel, který se vrací návratovou hodnotou, a pole hodnot těchto platidel uspořádané od největší hodnoty po nejnižší, které je vráceno pomocí parametru platidla. Pro úplnost dodáme, že používáme platidla s hodnotami 1, 2, 5, 10, 20, 50, 100, 200, 500, 1000, 2000 a 5000 Kč.

Příklad výstupu:

castka: 12345
pouzita platidla: 5000, 5000, 2000, 200, 100, 20, 20, 5

Povolené knihovny: stdio.h, stdlib.h


Creative Commons License Sbírka úloh z jazyka C. © Katedra informatiky Univerzity Palackého v Olomouci, 2009.
Projekt byl vytvořen za podpory grantu FRVŠ 2061/2009/G1.