哪位大佬可以告诉我这还有什么需要考虑
错误率为60%d1<d2时,并非全部是printf(2),只有当d1<d2且d1>d3的情况下,交点个数才为2。
所以呢,printf("2\n")放的位置有问题啊,你这样写的话,只要d1<d2,就会输出2. TyCk 发表于 2018-11-25 18:07
d1
嗯,所以我改了改,代码如下
#include<stdio.h>
#include<math.h>
int main()
{
int X, Y, R, x, y, r;
int d1, d2, d3;
scanf("%d %d %d", &X, &Y, &R);
scanf("%d %d %d", &x, &y, &r);
d1 = sqrt((X - x)*(X - x) + (Y - y)*(Y - y));
d2 = r + R;
d3 = fabs(R - r);
if(X==x&&Y==y&&R==r)
{
printf("-1\n");
}
else
{
if (d1 < d2 && d1 > d3)
{
printf("2\n");
}
if (d1 == d3 || d1 == d2)
{
printf("1\n");
}
if (d1 > d2 || d1 < d3 )
{
printf("0\n");
}
}
system("pause");
return 0;
}
可是最后还有20%的错误,似乎都考虑完了 {:10_266:}
页:
[1]