各位帮我看看,这个原理是什么

img

img


```c++
#define _CRT_SECURE_NO_WARNINGS
#include 
#include 

int main()
{
    int cock, hen, chicken;
    for (cock = 0; cock <= 20; cock++)               
        for (hen = 0; hen <= 33; hen++)                       
            for (chicken = 0; chicken <= 100; chicken++)      
            {
                if ((5 * cock + 3 * hen + chicken /3.0== 100) && (cock + hen + chicken == 100))
                    printf("cock=%2d,hen=%2d,chicken=%2d\n", cock, hen, chicken);  
            }
    system("pause");
    return 0;
}


```chicken /3.0与chicken /3得出结果不一样啊
求个人解释一下,明明都是3

数据类型不一样,导致结果精度不一样。
/3.0是与浮点数运算,得到的是浮点数
/3是与整数运算,得到的只有整数部分