c语言求三点是否共线,代码如下,求解哪里错误
#include "stdio.h"
main()
{
double a1,a2,b1,b2,c1,c2,k1,k2;
scanf("%f%f",&a1,&a2);
scanf("%f%f",&b1,&b2);
scanf("%f%f",&c1,&c2);
k1=(c2-b2)*(b1-a1);
k2=(c1-b1)*(b2-a2);
if (k1==k2)
printf("YES\n");
if (k1!=k2)
printf("NO\n");
}
是学校的在线测试题,提交不正确,谁能找出哪里错误,或者给我一个使程序错误的数据,谢谢
[解决办法]
如果b1==a1或b2==a2,测程序出现除0错误
[解决办法]
还有个错误,double型比较不能用 ==
一般写成类似这样 if ( a - b >= -0.000001 && a - b <= 0.00001) {}
[解决办法]