编辑代码

#include <stdio.h>
#define COIN_TYPES 4

// 贪心算法求解找零问题
void findMinCoins(int coins[], int amount) {
    int coinList[COIN_TYPES] = {0}; // 硬币计数数组
    for(int i = 0; i < COIN_TYPES && amount > 0; i++) {
        if(coins[i] <= amount) {
            coinList[i] = amount / coins[i]; // 计算每种硬币的数量
            amount = amount - coinList[i] * coins[i]; // 更新剩余的金额
        }
    }
    
    // 输出结果
    printf("The minimum number of coins is: \n");
    for(int i = 0; i < COIN_TYPES; i++) {
        if(coinList[i] != 0) {
            printf("%d coin(s) of %d\n", coinList[i], coins[i]);
        }
    }
}

int main() {
    int coins[COIN_TYPES] = {25, 10, 5, 1}; // 硬币面额
    int amount = 63; // 须要找零的金额
    findMinCoins(coins, amount);
    return 0;
}