| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 18837 人关注过本帖
标题:百鸡问题
只看楼主 加入收藏
blackhold
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-3-21
收藏
得分:0 
楼上的
printf ("公鸡=d%只,母鸡=d%只,小鸡=d%只\n" ,i,j,k);
|
看到错吗?

2006-01-05 15:23
luoshun
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2005-11-17
收藏
得分:0 
吐血,居然犯这种错误,简直不要活了!
2006-01-05 18:03
wu811216
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-11-7
收藏
得分:0 
w我在VB下算是四种结果,
2006-01-08 02:37
sunliulin80
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2005-12-13
收藏
得分:0 
main()
{int i,m,n,j,k;
for(i=0;i<20;i++)
{for(j=0;j<33;j++)
{ for(n=0;n<300;n++)
{
k=5*i+3*j+n;
if(k==100&&(i+j+3*n)==100) printf("%3d%3d%3d\n",i,j,n);
}
}
}
}
2006-01-09 22:58
chinaliang
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-11-8
收藏
得分:0 
以下是引用luoshun在2006-1-4 20:50:00的发言:

#include "stdio.h"
main()
{
int i,j,k;/*这i代表公鸡,j代表母鸡,k代表小鸡个数,而z代表小鸡的数目*/
float z=1/3;
for (k=0;k<=99;k+=3)/* 因为k%3只能整除,不可能等于小数啦,如果余数,那么
其他有可能就成了半个鸡了,不可能吧,所以就
只能是K+3*/
{
for (i=0;i<=20;i++)/*一样,只能是一百元,所以只能小于等于20,下面的一样*/
{
for (j=0;j<=34;j++)
{
if (i+j+k==100&&i*5+j*3+k/3.0==100)
printf ("公鸡=%d只,母鸡=%d只,小鸡=%d只\n" ,i,j,k);
}
}
}

getch ();
}
看起来好象没有什么错误,但是运行出来就不行了,不知道哪位高人能帮小弟弟解决看一下,我写的程序哪里有问题呢???

我已经改正过来了!谢谢哈!现在这个程序应该是正确的了吧!!!!


应该改成if (i+j+k==100&&i*5+j*3+k/3.0==100)

2007-05-09 10:14
yu_hua
Rank: 2
等 级:论坛游民
帖 子:222
专家分:95
注 册:2006-8-10
收藏
得分:0 
/*以下用a表示买公鸡花的钱数
以下用b表示买母鸡花的钱数
以下用c表示买小鸡花的钱数*/
#include <stdio.h>
main( )
{
int a,b,c;
for(a=5;a <100;a=a+5)
for(b=3;a+b<100;b=b+3)
{
c=100-a-b;
if(a/5+b/3+3*c==100)
printf("cock=%d,hen=%d,chick=%d\n",a/5,b/3,3*c);
}
}
2007-05-09 11:45
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 
/

/.



叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2007-05-09 15:09
jeon_chen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-9
收藏
得分:0 


先列出数学方程,再想办法优化:
设买公鸡数为x,母鸡数为y,小鸡数为z,
则有:x+y+z=100.........................................................1
5x+3y+1/3z=100 ................................................2
由1得:z=100-x-y
带入2并化简得:y = 25 - 7/4x ........................................3
由3可知:x必须是4的倍数,且x<=12; y<=25
综上述,其实我们只要一个循环即可,且循环的次数为4次,下面是我的代码:

#include <stdio.h>
void main()
{
int i;
int x; /*公鸡数目*/
int y; /*母鸡数目*/
int z; /*小鸡数目*/
for (i=0; i<4; ++i)
{
x = 4*i;
y = 25 - 7*x/4;
z = 100 - x - y;
printf("cock number is:%d \t hen number is:%d \t chick number is:%d\n",x,y,z);
}
getch();
}

2007-05-09 17:02
wen1000
Rank: 1
等 级:新手上路
帖 子:52
专家分:0
注 册:2007-4-5
收藏
得分:0 
#include <stdio.h>
main( )
{
int cocks,hens,chicks;
cocks=0;
while(cocks<=19)
{
hens=0;
while(hens<=33)
{
chicks=100-cocks-hens;
if(5*cocks+3*hens+chicks/3==100&&chicks%3==0)
printf("%d,%d,%d\n",cocks,hens,chicks);
hens=hens+1;
}
cocks=cocks+1;
}
}
2007-05-09 20:45
yangzhifu
Rank: 1
等 级:新手上路
威 望:2
帖 子:433
专家分:0
注 册:2007-4-11
收藏
得分:0 

用两个for语句
#include<stdio.h>

void main()
{ int a,b,c;

for( a=0;a<=20;a++)
{for(b=0;b<=33;b++)
{ c=100-a-b;
if(5*a+3*b+ c/3==100 && c%3==0)
printf("%d,%d,% d\n" ,a,b,c);}
}
}


方寸之内,剖天下; 方坛之内,析自我;
2007-05-09 23:41
快速回复:百鸡问题
数据加载中...
 
   



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

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