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