求解答,刚入门,这个怎么写啊🙏🏻

某班级有52名同学,用100块钱购买52个笔记本,需要避免找零。

A5笔记本10块钱6本,B5笔记本1块钱一本,16K笔记本2块钱一本。求所有可能的解。

#include <stdio.h>
 
#define MAX_GOODS 100
 
typedef struct goods
{
    int cnt;
    int price;
}GOODS_T;
 
int main(int argc, char *argv[])
{
    int money_all = 0;
    int money_now = 0;
    int i = 0;
    GOODS_T goods[MAX_GOODS] = {0};
     
    printf("请输入预算:");
    scanf("%d", &money_all);
     
    while(i < MAX_GOODS)
    {
        printf("请输入项目和价格:");
        scanf("%d %d", &goods[i].cnt, &goods[i].price);
        money_now += (goods[i].cnt * goods[i].price);
        if (money_now == money_all)
        {
            printf("您的剩余预算是0。\n");
            break;
        }
        else if (money_now > money_all)
        {
            money_now -= (goods[i].cnt * goods[i].price);
            printf("你不能买最后的东西。\n");
            printf("您的剩余预算是%d。\n", money_all - money_now);
            break;
        }
         
        i++;
    }
    return 0;
}