鱼C论坛

 找回密码
 立即注册
查看: 2623|回复: 3

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

[复制链接]
发表于 2018-11-25 16:51:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
7@GZXSMILLXGO09_14KCDNA.png

这是我的代码

这是我的代码
错误率为60%

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-11-25 18:07:42 | 显示全部楼层
d1<d2时,并非全部是printf(2),只有当d1<d2且d1>d3的情况下,交点个数才为2。
所以呢,printf("2\n")放的位置有问题啊,你这样写的话,只要d1<d2,就会输出2.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-28 14:26:00 | 显示全部楼层

嗯,所以我改了改,代码如下
#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%的错误,似乎都考虑完了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-12-3 15:20:12 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-23 05:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表