C语言关于“百钱百鸡”的问题

用visualstudio2010编译输入:#include<stdio.h>main(){intcock,hen,chicken;for(cock=0;cock<=20... 用visual studio 2010编译
输入:
#include<stdio.h>
main()
{
int cock,hen,chicken;
for(cock=0;cock<=20;cock++);
for(hen=0;hen<=33;hen++);
for(chicken=0;chicken<=100;chicken++);
{
chicken=100-cock-hen;
if(5*cock+3*hen+chicken/3==100);
printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
}
}

结果却是这样

想问一下,哪里错了????
展开
 我来答
匿名用户
2014-03-17
展开全部
int all = 100;
            int cock = 0;
            int hen = 0;
            int chk = 0;
            for ( cock = 1; cock <= 100;cock++ )
            {
                for (hen = 1; hen <= 100; hen++)
                {
                    for (chk = 1; chk <= 100; chk++)
                    {
                        if ((cock + hen + chk == 100) && ((cock * 5 + hen * 3 + chk / 3 == 100))&&( chk % 3 ==0))
                        {
                            Console.WriteLine("公鸡{0},母鸡{1},小鸡{2}", cock, hen, chk);
                        }
                    } 
                }
            }
            }

C#编写的 思路是一样的  小鸡除3 可能不一定是3的整数倍 而且又能符合总和是100的哦 加上一个判断 小鸡的数量是3的整数倍才可以

在大围山拉小提琴的冷杉
2014-03-17 · TA获得超过369个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:222万
展开全部
for(cock=0;cock<=20;cock++);
for(hen=0;hen<=33;hen++);
for(chicken=0;chicken<=100;chicken++);
if(5*cock+3*hen+chicken/3==100);

后面的分号导致这个if语句和所有的for循环语句都是空语句


而且在最内层的for循环内,你是使用chicken作为循环标尺的,但是你每次进去就首先给chicken赋值。这导致了这个循环是错误的。

最内层的for循环内应该写成

for(chicken=0;chicken<=100;chicken++);
{
//chicken=100-cock-hen;
if( 5*cock+3*hen+chicken/3==100  && cock+hen+chicken == 100 );
    printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
}

 由于你直接chicken/3,结果是取整的,有可能导致不正确。所以,要么增加判断条件chicken可以被3整除,要么最内层的for循环里写成

for(chicken=0;chicken<=100; chicken+=3 )
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式