#include
main()
{int cocks=0,hens,chicks;
while(cocks<=19)
{hens=0;
while(hens<=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++;
}
}
在数字加.0为什么会差那么多
不加.0是整数运算 加.0是浮点运算 ,浮点存储格式本身就有误差所以运算也有误差
编译器在计算时,会将精度向精度高的数据类型转换。如果没有.0就是整数类型,有了就是浮点类型。但是浮点类型最好不用==来做判断!
如果不加,那么相当于整除。
比如说
8/3=2
8/3.0=2.66666...
两者差33%
+.0 数据就会自动被转换为浮点数,遵从浮点数的运算方式。