t是一个浮点数,在计算机的世界里,浮点数无法精确地等于某个数,因此判断一个浮点数等于多少的时候一般不会用==符号,而是与这个数作差,如果差在某个精度内等于0就可以认为是和这个数相等的,因此你的代码改成如下这样即可:
#include"stdio.h"
#include"math.h"
void main()
{
double x1,y1, x2, y2,d, s, t;
int s1;
while(scanf("%lf,%lf %lf,%lf", &x1, &y1, &x2, &y2)!= EOF)
{
d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
s = 0.5*d*d;
s1 = (int)s;
printf("d: %lf", d);
printf("%lf\n", s);
printf("%d\n", s1);
t = s-s1;
printf("%lf\n", t);
if((t-0)<0.00000001)
printf("%d\n", s1);
else
printf("%.1lf\n", s);
}
}