某班级有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;
}