| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 449 人关注过本帖
标题:关于百鸡百钱的输出问题!
只看楼主 加入收藏
artofflive
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-10-18
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
关于百鸡百钱的输出问题!
#include <stdio.h>
void main()
{
    int cocks = 0 , hens,  chicks;
    while (cocks <= 19)
    {
         hens = 0;
        while (hens <= 33)
        {
            chicks = 100 - cocks - hens;
            if (5 * cocks + 3 * hens + chicks/3 == 100)
                printf ("%d %d %d\n", cocks, hens, chicks);
            hens++;
        }
        cocks++;
    }
}
这个输出为
图片附件: 游客没有浏览图片的权限,请 登录注册

如果改成这样的话:
#include <stdio.h>
void main()
{
    int cocks = 0 , hens,  chicks;
    while (cocks <= 19)
    {
         hens = 0;
        while (hens <= 33)
        {
            chicks = 100 - cocks - hens;
            if (5.0 * cocks + 3.0 * hens + chicks/3.0 == 100.0)
                printf ("%d %d %d\n", cocks, hens, chicks);
            hens++;
        }
        cocks++;
    }
}
输出为
图片附件: 游客没有浏览图片的权限,请 登录注册


我用的是VC++ 企业版;求解!!为什么会这样?

[ 本帖最后由 artofflive 于 2009-10-30 12:40 编辑 ]
搜索更多相关主题的帖子: 输出 
2009-10-30 12:35
hackerStar
Rank: 2
来 自:厦门
等 级:禁止访问
帖 子:66
专家分:71
注 册:2009-10-29
收藏
得分:5 
你刚开始定义了整形,可是后来数据又成了浮点型float,这样数据就可能会出错

-------------->>>>>信仰火之意识,崇拜黑客精神<<<<<--------------------
2009-10-30 12:44
pgy
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:C
等 级:小飞侠
威 望:8
帖 子:1248
专家分:2329
注 册:2009-9-23
收藏
得分:5 
上面那个是按整型算
    下面是按实型算
根据转换规则“就长不就短”所以会得出你那样的结果
    ps:user一个for循环的程序写的蛮好,怎么都还在研究啊
        看来最近扫黄抓的严啊~~~~~

我可好玩啦...不信你玩玩^_^
2009-10-30 12:46
artofflive
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2009-10-18
收藏
得分:0 
了解,扫黄就扫咯。嘻嘻!
2009-10-30 12:48
°詠恆┈℡
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2009-10-9
收藏
得分:0 
这道题中chicks的数目应该是3的倍数
你编的第一种程序“chicks/3”中,chicks定义的是整型,3也是整型,所以结果也是整数。举个例子:5/3=1(按照程序中的要求)
所以你的的结果中有几个chicks的数目不是三的倍数
而第二种程序中,3.0是实型常量,结果就不一样了
其实这道题可以用for语句的
#include <stdio.h>
void main()
{
 int x,y,z;
 printf("公鸡 母鸡 小鸡\n");
 for(x=0;x<20;x++)
  for(y=0;y<33;y++)
  {z=100-x-y;
   if(x*5+y*3+z/3==100&&z%3==0)
    printf("%-6d%-6d%-6d\n",x,y,z);
   }
}
2009-10-30 13:00
快速回复:关于百鸡百钱的输出问题!
数据加载中...
 
   



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

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