C语言为什么结果输出不一样?

#include<stdio.h>
void main()
{double a,b,c,k;
static int n=1;
for(a=0;a<=20;a++)
{for(b=0; b<=(100/3);b++)
{for(c=0; c<=300 ;c++)
{k=a*5+b*3+c/3;//这里有问题
if(k==100)
{
printf("scheme %d:the number of cock is%.0lf, hen is %.0lf, foult is %.0lf\n ",n,a,b,c);
n++;
}
}
}
}
system("pause");

}

设公鸡每只5元,母鸡每只3元,小鸡每元3只,现用100元钱买100只鸡。编写一个程序,算出可以各买多少只鸡?

为什么k=a*5+b*3+c/3;改成
k=a*5+b*3+c*(1/3)输出的结果不一样呢?

1/3 整数和整数相除的话结果还是整数,会把小数给截断。如果你想一样的结果需要c*(1./3)

加个小数点就可以了
温馨提示:答案为网友推荐,仅供参考
相似回答