① 哥们帮解决这个c语言问题
呵呵,楼上的解法有点误会了,嘻嘻,可能粗心没看清题:
首先用3个for循环设计的:公鸡定义为n只,母鸡为m只,小鸡就是(100-n-m)只,这样并不能限定一定是买100只鸡;
其次:if((x*3*3+y*2*3+z)==300)这个有可能出现小鸡的数量是奇数,对原题来说不可能吧。
给出一个可以得出正确答案的代码,可能算法不咋样,循环的条件也定义的过大了点,有点浪费,楼主思考下改改吧
#include<stdio.h>
void main()
{
int x,y,z,count=0;
for(x=0;x<34;++x)
{
for(y=0;y<50;++y)
{
for(z=0;z<300;++z)
{
if(x+y+z==100&&5*x+3*y+z/3==100&&z%3==0)
{
count++;
}
}
}
}
printf("%d\n",t);
}
② 一条简单的c语言编程题。
for(int i=0; i<=20; i++)
{
for(int i=0; i<34; i++)
{
int k = 100 - 5*i - 3*j;
if(i+j+k == 100)
{
printf("公鸡%d 母鸡%d 小鸡%d", i, j, k);
}
}
}
100元买100只鸡,一直合1元,只有买100只小鸡了
③ 用c语言编写一个程序
百钱百鸡问题中国古代数学家张丘建在他的《算经》中提出了着名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
*题目分析与算法设计设鸡翁、鸡母、鸡雏的个数分别为cocks(x),hens(y),chicks(z),题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然cocks的值在0~20之间;
同理,hens的取值范围在0~33之间,可得到下面的不定方程: 5x+3y+z/3=100 x+y+z=100 所以此问题可归结为求这个不定方程的整数解。由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。
程序解释
main()
{
int cocks=0,hens,chicks;
while (cocks<=19) //公鸡只数小于19
{hens=0;
while(hens<=33) //母鸡小于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++;
}
}
④ C语言请教,非常感谢!
for (int i = 0; i <= 20; ++i)
for (int j = 0; j <= 33; ++j)
for (int k = 0; k <= 100; ++k)
if (i + j + 3 * k == 100 && 5 * i + 3 * j + k == 100)
printf("公鸡=%d,母鸡=%d,小鸡=%d\n", i, j, 3*k);
结果:
公鸡=0,母鸡=25,小鸡=75
公鸡=4,母鸡=18,小鸡=78
公鸡=8,母鸡=11,小鸡=81
公鸡=12,母鸡=4,小鸡=84
非常不好意思,谢谢xys8628提醒还要考虑效率,现在改过:
for (int i = 75; i >= 67; --i)
{
int var1 = 3 * i - 200;
int var2 = i - 3 * var1;
int var3 = 5 * var1 - i;
if (var2 < 0 || var3 < 0 || var2 % 2 || var3 % 2)
continue;
else
printf("公鸡=%d,母鸡=%d,小鸡=%d\n", var2 / 2, var3 / 2, (100 - i) * 3);
}
现在效率比xys8628的快73倍了
其思路是在确定已买小鸡花的钱的前提下解2元方程组
5×公鸡数 + 3×母鸡数 = 100 - 已买小鸡花的钱
公鸡数 + 母鸡数 = 100 - 已买小鸡花的钱 × 3
其中67到75的循环是预先计算出的买小鸡花费的范围
⑤ c语言程序设计例题
#include <stdio.h>
main()
{
int nCock;//公鸡数
int nHen;//母鸡数
int nChick;//小鸡数
for(nCock = 0; nCock <= 100 / 5; nCock++)//公鸡数最多不超过100/5只
{
for(nHen = 0; nHen <= (100 - nCock * 5) / 3; nHen++)//母鸡数最多不超过(100元-公鸡数*5)/3
{
//小鸡数=(100元 - 公鸡数*5 - 母鸡数*3)*3
nChick = (100 - nCock*5 - nHen*3) * 3;
//如果公鸡数+母鸡数+小鸡数正好为100只,则此情况为一解
if(nCock + nHen + nChick == 100)
printf("公鸡%d只,母鸡%d只,小鸡%d只\n", nCock, nHen, nChick);
}
}
}
⑥ c语言编程:一只老母鸡一天下一个蛋,蛋一天变小鸡,小鸡一天后变母鸡,一百天后有多少鸡和蛋
计算机模拟这个过程,就是一个递推公式。
int n = 100; // days
int hen = 1 ; //开始1只鸡
int egg = 0; // 0个蛋
int chick = 0 ; // 0只小鸡
for(int i=1;i<n;i++){
int tmp = chick;
chick = egg; // 小鸡由前一次的蛋孵化
egg = hen; //前一次的鸡下蛋
hen += tmp;//以前的鸡 和 小鸡成长的鸡 相加
}
printf("%d,%d,%d",hen,egg,chick);
⑦ C语言求帮助
我没有理解错的话你的ijk是指 鸡翁鸡母鸡雏的数量而s则是指总共花的钱吧?这样的话,总的钱为什么是s=5*i+3*j+k呢?鸡雏不是三只才一钱吗?而且买的鸡雏数量应该是3的整数倍,所以
for(k=0;k<=100;k++)应该改成 for(k=0;k<=100;k+=3),而 s=5*i+3*j+k;则应改成 s=5*i+3*j+k/3;
最后,你可以算一下,鸡翁为零的时候应该是找不到满足条件的j和k 的。。。
⑧ C语言编程
...............这么多问题建议去网络,即使有人回答也写不下
⑨ 百钱买百鸡C语言编程 公鸡5元/只 母鸡3元/只 小鸡1元/3只 求所有满足条件各鸡数目 只用一层
#include<stdio.h>
intmain(intargc,constchar*argv[])
{
intgongji,muji=0,xiaoji=0;
for(gongji=0;gongji<=20;muji++)
{
if(gongji*5+muji*3<=100)
{
printf("公鸡:%d 母鸡:%d 小鸡:%d ",gongji,muji,(100-gongji*5-muji*3)*3);
}
else
{
gongji++;muji=0;
}
}
return0;
}