编辑代码

#include <stdio.h>
struct item{
    char name[50];
    int price;
};

void makingChange(struct item changeRange[], int length, int sum){
    int array[length];
    for(int i = 0; i < length; i++){
        array[i] = 0;
    }

    int i = 0;

    printf("应找零%d分", sum);

    while(sum > 0){
        if(sum >= changeRange[i].price){
            sum = sum - changeRange[i].price;
            array[i] = array[i] + 1;
            continue;
        }

        i++;
    }

    printf("\n共找零:", sum);

    for(int i = 0; i < length; i++){
        printf("\n%d个%s", array[i], changeRange[i].name);
    }
}

int main () {
    struct item changeRange[] = {{"二角五分硬币", 25}, {"一角硬币", 10}, {"五分硬币", 5}, {"一分硬币", 1}};
    int length = sizeof(changeRange) / sizeof(changeRange[0]);
    int sum = 48;

    makingChange(changeRange, length, sum);

    return 0;
}