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);
}
}
结果却是这样
想问一下,哪里错了???? 展开
输入:
#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的整数倍才可以
展开全部
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 )
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询