买铅笔问题,需要分几种情况

img

问题遇到的现象和发生背景 p需要去商店买 n 支铅笔作为小朋友们参加 NOIP 的礼物。她发现商店一共有 3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P 决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此 P 可能需要购买超过 n 支铅笔才够给小朋友们发礼物。

现在 P 想知道,在商店每种包装的数量都足够的情况下,要买够至少 n支铅笔最少需要花费多少钱。

用代码块功能插入代码,请勿粘贴截图

#include <stdio.h>
int main () {
int a,b,c,d=10000,i,f,g;
scanf("%d",&g);
for(i=1;i<=3;i++)
{
scanf("%d%d",&a,&b);
if(g%a==0) c=b*(g/a);
else c=b*(g/a+1);
if(c<d||d==10000) d=c;

} printf("%d",c);
}

运行结果及报错内容 只对了40%,不理解怎样处理。

img

代码参考如下:

#include <stdio.h>
int main() {
    int a[7] = {0};
    for (int i = 0; i < 7; i++) {
        scanf("%d", &a[i]);
    }
    // 第一种花费
    int p1 = a[1] * (a[6] / a[0] + (a[6] % a[0] > 0));
    // 第二种花费
    int p2 = a[3] * (a[6] / a[2] + (a[6] % a[2] > 0));
    // 第三种花费
    int p3 = a[5] * (a[6] / a[4] + (a[6] % a[4] > 0));
    if (p1 <= p2 && p1 <= p3) {
        printf("购买第一种最划算,需花费:%d元\n", p1);
    } else if (p2 <= p1 && p2 <= p3) {
        printf("购买第二种最划算,需花费:%d元\n", p2);
    } else if (p3 <= p1 && p3 <= p2) {
        printf("购买第三种最划算,需花费:%d元\n", p3);
    }
    return 0;
}

说实话问题没看懂,尴尬了