诗竹白芍 发表于 2018-11-25 16:51:05

哪位大佬可以告诉我这还有什么需要考虑

错误率为60%

TyCk 发表于 2018-11-25 18:07:42

d1<d2时,并非全部是printf(2),只有当d1<d2且d1>d3的情况下,交点个数才为2。
所以呢,printf("2\n")放的位置有问题啊,你这样写的话,只要d1<d2,就会输出2.

诗竹白芍 发表于 2018-11-28 14:26:00

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%的错误,似乎都考虑完了

诗竹白芍 发表于 2018-12-3 15:20:12

{:10_266:}
页: [1]
查看完整版本: 哪位大佬可以告诉我这还有什么需要考虑