qq_36519547
2016-11-09 13:26
采纳率: 47.1%
浏览 1.1k
已采纳

C语言问题求解答 关于这个程序有一些疑问

某品牌巧克力使用500克原料可制作55小块巧克力,请编程实现:输入原料重量(以千克为单位),计算出制作巧克力的块数(四舍五入)。然后对这些巧克力进行分包,小盒放11块,大盒放24块,问各分装多少大盒多少小盒剩余巧克力块数最少。
#include
int main()
{
int a,b,c,d,num=0,min=9999,s=0;
double n,x;
scanf("%if",&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;
————————————————————-分割线
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;
从这看
第一个问题: 这两个for 是并列循环还是内嵌循环呢?
问题二: a ,b,都赋值给了c d ,又成为了
那还有意义?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • DoubleFoldEyelids 2016-11-09 14:07
    已采纳

    两个for是内嵌循环;

    并列循环如下:for(a=0;a*11<=num;a++){}
    -----------------------------------------------------分界
    for(b=0;b*24<=num;b++){}

    c d用于暂存大小的盒数,也可以用 a,b 代替输出的,

    希望可以帮助你

    打赏 评论
  • IT平头哥 2016-11-09 14:15

    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;
    }
    }
    };末尾应该加上分号就算是内嵌循环,否则是有错误的。

    打赏 评论

相关推荐 更多相似问题