Я делаю программу для расчета наиболее эффективного количества изменений, которое нужно дать, когда пользователь вводит определенное значение в долларах.
Программа работала до того, как я пытался превратить ее в функции, и когда я пыталсясделать мою программу более надежной с помощью функций, программа не будет работать должным образом.
double getValueofCoins(int totalCalc, int coinValue, char* coinName) {
double coinType;
coinType = totalCalc / coinValue;
totalCalc = totalCalc % coinValue;
printf("\n%s: %.0lf", coinName, coinType);
return totalCalc;
}
int makeChange(int totalCalc) {
double total;
// calculate the most efficient amount of change
getValueofCoins(totalCalc, 200, "Toonies");
getValueofCoins(totalCalc, 100, "Loonies");
getValueofCoins(totalCalc, 25, "Quarters");
getValueofCoins(totalCalc, 10, "Dimes");
getValueofCoins(totalCalc, 5, "Nickels");
getValueofCoins(totalCalc, 1, "Pennies");
return total;
}
Я хочу, чтобы код выполнял максимально эффективные изменения (например, если пользователь вводит $ 20, было бы сказано 10 toonies), но он печатает количество монет каждого типа, которое будет составлять стоимость (например: если пользователь введет 20 $, он скажет 10 toonies, 20 loonies, 80 четверти и т. д.)
Я думаю, это потому, что переменная totalCalc сбрасывается до того, что пользователь вводил изначально каждый раз, когда я вызываю getValueofCoins ().Как бы это исправить?