一个很费解的问题
有个问题,公鸡5块,母鸡3块,小鸡3个一块,100块买100只鸡,问买多少!~我写了两个程序
#include<stdio.h>
void main()
{
int a,b,c,num,price ;
for(a=1;a<20;a++)
{
for(b=1;b<34;b++)
{
for(c=1;c<100;c++)
{
num = a+b+c;
price = 5*a+3*b+c/3;
if(num==100&&price==100)
printf("Cock:%d\nHen:%d\nChick:%d\n\n",a,b,c);
}
}
}
}
# include <stdio.h>
void main ()
{
int a,b,c1,c2;
for (a=0;a<=20;a++)
{
for (b=0;b<34;b++)
{
c1=(100-5*a-3*b)*3;
c2=100-a-b
if (c1==c2)
printf("Cock:%d\nHen:%d\nChick:%d\n\n",a,b,c1);
}
}
}
第一个输出的结果比第二个多出来两个,多出来的这两组结果中 鸡的数目是100,但是小鸡的数目不能被3整除,但是算钱的时候是约等于100的!~老师曾经给我们说可能是什么数目太小引起的错误,所以我将第一个里面的 if 的 条件 改成了 fabs(num-100)<1e-5&&fabs(price-100)<1e-5 ,但是这样出来的 结果就完全不对了!~~
请高手解释下!~这两个程序哪里不一样,为什么第一个输出的结果多出来两个!~