| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3983 人关注过本帖
标题:百钱买百鸡问题,怎么也想不通,求助啊!!!!
只看楼主 加入收藏
sk2363805
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-12-31
收藏
 问题点数:0 回复次数:15 
百钱买百鸡问题,怎么也想不通,求助啊!!!!
100元买:小鸡0.5元/只;母鸡2元/只;公鸡3元/只  几种方案?
我的思路:x+y+z==100&&0.5*x+2*y+3*z==100
我输得程序:
#include <stdio.h>
main()
{int x,y,z;
   for(x=100,x>=0,x--)
     {
     for(y=100,y>=0,y--)
       {     
       for(z=100,(x+y+z==100)&&(0.5*x+2*y+3*z==100),z--)
       printf("x=%d  y=%d  z=%d",x,y,z)
       }
     }
}

各位老师我错在哪儿了,怎么无数出???
搜索更多相关主题的帖子: int main include 公鸡 
2008-01-11 23:37
sk2363805
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-12-31
收藏
得分:0 
终于研究出来了
#include <stdio.h>
main()
{int x,y,z;
   for(x=100,x>=0,x--)
     {
     for(y=100,y>=0,y--)
       {  
         for(z=100;z>=0,z--)   
          {
           if(x+y+z==100)&&(0.5*x+2*y+3*z==100),z--)
           printf("x=%d  y=%d  z=%d",x,y,z);
           continue;
          }
        }
     }
}
2008-01-12 00:24
linsua
Rank: 1
等 级:新手上路
帖 子:275
专家分:0
注 册:2008-1-2
收藏
得分:0 
恭喜

如果你对我的话感到再明白不过 那恐怕你是误解了我的意思
2008-01-12 01:58
ldpzh
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-11-19
收藏
得分:0 
建议改为
建议改为
#include <stdio.h>
main()
{int x,y,z;
   for(x=100;x>=0;x--)
     {
     for(y=100;y>=0;y--)
       {  
         for(z=100;z>=0;z--)   
          {
           if((x+y+z==100)&&(0.5*x+2*y+3*z==100))
           {z--;
           printf("x=%d  y=%d  z=%d\n",x,y,z);
           }
           continue;
          }
        }
     }
}
2008-01-12 09:54
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
楼上的不错啊,其实还要考虑效率问题,做计算要是大量得计算效率很重要,优化算法也很关键啊
2008-01-12 10:54
苦中求乐
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-10-27
收藏
得分:0 
我也修改了一下程序,减少了循环次数,减少了一层循环,大家指点一下.
#include <stdio.h>
main()
{int x,y,z; /* x为公鸡数目,y为母鸡数目,z为小鸡数目 */
   for(x=33;x>=0;x--)
   {
     for(y=50;y>=0;y--)
     {  
         z=100-x-y;
         if(z>=0)
           if(3*x+2*y+0.5*z==100.0)
             printf("x=%d  y=%d  z=%d\n",x,y,z);
     }
   }
}

[[italic] 本帖最后由 苦中求乐 于 2008-1-12 12:45 编辑 [/italic]]

笨鸟先飞。可惜我既笨又懒!
2008-01-12 12:44
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
不错啊,帮你顶一下啊,呵呵,时间缩短了.
2008-01-12 14:33
46067022
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-1-11
收藏
得分:0 
第九行的 if(z>=0)也可以不要呀!x=33
   y=50已是最大了,100-X-Y不可能比0小了
2008-01-24 13:41
46067022
Rank: 1
来 自:湖南湘潭
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-1-11
收藏
得分:0 
FOR语句里不用分号也能通过编译,你用的什么工具编程呀
2008-01-24 13:48
幻姬LOVE
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2008-1-20
收藏
得分:0 
#include<stdio.h>
void main()
{
    int i,j,k;
    for(i=0;i<34;i++)
      for(j=0;j<=50;j++)
        for(k=0;k<=200;k++)
        if(i*3+j*2+k*0.5==100)
         printf("%d %d %d\n",i,j,k);
}
这个可以吗??感觉用了三层循环多了。。但是好理解。好写;
2008-01-24 14:05
快速回复:百钱买百鸡问题,怎么也想不通,求助啊!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026300 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved