C语言求助,百元买百鸡问题
这是我的代码/*
中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
*/
#include <stdio.h>
int main()
{
int i, j, k;
for (i = 0; i <= 20; i++)
for (j = 0; j <= 33; j++)
for (k = 3; k <= 99; k++)
if(5*j+3*j+k/3==100)
if (i+j+k==100)
if(k%3==0)
printf("公鸡%d 母鸡%d 小鸡%d", i, j, k);
return 0;
}
下面是网上的代码
#include <stdio.h>
int main()
{
int cock,hen,chick; /*定义变童为基本整型*/
for(cock=0;cock<=20;cock++) /*公鸡范围在 0~20 之间*/
for(hen=0;hen<=33;hen++) /*母鸡范围在 0~33 之间*/
for(chick=3;chick<=99;chick++) /*小鸡范围在 3~99 之间*/
if(5*cock+3*hen+chick/3==100) /*判断钱数是否等于 100*/
if(cock+hen+chick==100) /*判断购买的鸡数是否等于 100*/
if(chick%3==0) /*判断小鸡数是否能被 3 整除*/
printf("公鸡:%d,母鸡:%d,小鸡:%d\n",cock,hen,chick);
return 0;
}
我感觉我的代码跟网上的代码已经一样了,为什么运行结果不一样? if(5j+3j+k/3==100) 改成if(5i+3j+k/3==100) " if(5j+3j+k/3==100)",i是5元的鸡,你把变量搞错了
k++改成k+3也行,就不用最后去判断了,少行代码 int main()
{
int i, j, k;
for (i = 0; i <= 20; i++)
for (j = 0; j <= 33; j++)
for (k = 3; k <= 99; k++)
if(5i+3j+k/3==100)
if (i+j+k==100)
if(k%3==0)
printf("公鸡%d ,母鸡%d ,小鸡%d", i, j, k);
return 0;
} 第一个if语句那里出错了,把第一个j改成i就行了 苏紫方璇 发表于 2021-7-3 23:34
if(5j+3j+k/3==100) 改成if(5i+3j+k/3==100)
非常感谢 pdln 发表于 2021-7-4 00:22
" if(5j+3j+k/3==100)",i是5元的鸡,你把变量搞错了
k++改成k+3也行,就不用最后去判断了,少行代码
非常感谢 tester001 发表于 2021-7-4 11:36
第一个if语句那里出错了,把第一个j改成i就行了
非常感谢 这个不错用来解题。
页:
[1]