87546 2022-02-10 16:15 采纳率: 0%
浏览 32

洛谷p1909题,有没有知道的

#include<stdio.h>

int main(){
int a,b,i,num,n;
int money[3],min=10000;
scanf("%d",&n);
for(i=0;i<3;i++){
scanf("%d %d",&a,&b);
if(n%a==0){
num=n/a;
}
else{
num=n/a+1;
}
money[i]=b*num;
min=money[0];
if(money[i]<min){
min=money[i];
}
}
printf("%d",min);
return 0;
}

有没有大佬知道错哪了

img

  • 写回答

1条回答 默认 最新

  • 关注

    min=money[0];这一句每一次for循环都会执行,是错误的,应该只有在i=0的时候执行。
    代码修改如下,修改部分有注释:

    #include<stdio.h>
    
    int main(){
        int a,b,i,num,n;
        int money[3],min=10000;
        scanf("%d",&n);
        for(i=0;i<3;i++){
            scanf("%d %d",&a,&b);
            if(n%a==0){
                num=n/a;
            }
            else{
                num=n/a+1;
            }
            money[i]=b*num;
            //修改,添加这个if条件
            if(i==0)
                min=money[0];
    
            if(money[i]<min){
                min=money[i];
            }
        }
        printf("%d",min);
        return 0;
    }
    
    
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 2月10日