qq_36519547 2016-11-07 01:50 采纳率: 100%
浏览 942
已采纳

新手问一个C语言问题 求解答!!!

#include
int main()
{
int a,b,c,d,num=0,min=9999,s=0;
double n,x;
scanf("%lf",&n);
n=n*1000;
x=((n*55)/500.0);
if(x>=(int)x+0.5)
num=(int)x+1;
else num=(int)x;
for(a=0;a*11<=num;a++)
for(b=0;b*24<=num;b++)
{
 if(a*11+b*24<=num)
 {
  s=num-(a*11+b*24);
   if(s<min)
   {
    c=a,d=b;
     min=s;
   }
 }
}
printf("装%d小盒\n装%d大盒\n剩余%d块.",c,d,min);
    return 0;
}
某品牌巧克力使用500克原料可制作55小块巧克力,请编程实现:输入原料重量(以千克为单位),计算出制作巧克力的块数(四舍五入)。然后对这些巧克力进行分包,小盒放11块,大盒放24块,问各分装多少大盒多少小盒剩余巧克力块数最少
这是题目
for(a=0;a*11<=num;a++)
for(b=0;b*24<=num;b++)
{
 if(a*11+b*24<=num)
 {
  s=num-(a*11+b*24);
   if(s<min)
   {
    c=a,d=b;
     min=s;
   }
 }
}
这里有几个地方不明白
if(a*11+b*24<=num) 不成立 程序怎么走? 是跳出内部循环然后进行一次a++再次进入 内部循环b++吗
if(s<min)不成立程序怎么走? 是在进行一次b++吗
b++如果放下面应该放在哪个位置?
  c=a,d=b;
     min=s;
   }
 }
b++
}
是这个位置吗
同问0
|
浏览36
|
收藏0
|

  • 写回答

4条回答 默认 最新

  • threenewbee 2016-11-07 02:49
    关注
     if(s<min)不成立程序怎么走?
    和前一个问题回答一样
    
    b++也可以放在和内侧循环配对的花括号的前面,如下:
    
    for(b=0;b*24<=num;)
    {
     if(a*11+b*24<=num)
     {
      s=num-(a*11+b*24);
       if(s<min)
       {
        c=a,d=b;
         min=s;
       }
     }
     b++;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波