weixin_43436017 2018-10-16 16:10 采纳率: 33.3%
浏览 546
已采纳

求各位大神帮忙修改一下,编译没错,但是结果一直不对?

5、创建一个名称为CCCircle的类来表示平面坐标系上的圆形,要求圆心点用CCCircle的内部类Point表示,CCCircle类中包含求一点到圆心距离的方法public double distance(Piont p)。在main方法中实例化一个圆c((10,10),2),一个点p(5,5),再求p与c之间的关系。
public class CCCircle{
public double x;
public double y;
public static double r;
public CCCircle() {
x=0;
y=0;
r=0;
}
public CCCircle(double x,double y,double r) {
this.x=x;
this.y=y;
this.r=r;
}
public class Point{
public double x;
public double y;

    public Point(double x,double y){
        this.x=x;
        this.y=y;
    }
}
public double distance(Point p) {
    return Math.sqrt((this.x-x)*(this.x-x)+(this.y-y)*(this.y-y));
}

public static void main(String[] args) {
    CCCircle c=new CCCircle(10,10,2);
    CCCircle.Point p=c.new Point(5,5);

    if(c.distance(p)>r) {
        System.out.println("点在圆外");
    } else if(c.distance(p)==r) {
        System.out.println("点在圆上");
    } else {
        System.out.println("点在圆内");}
  • 写回答

1条回答 默认 最新

  • threenewbee 2018-10-17 00:31
    关注
     public class Program {
    
        class CCCircle{
            public double x;
            public double y;
            public double r;
            public CCCircle() {
                x=0;
                y=0;
                r=0;
            }
            public CCCircle(double x,double y,double r) {
                this.x=x;
                this.y=y;
                this.r=r;
            }
    
            public double distance(Point p) {
                return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
            }
    
            class Point{
                public double x;
                public double y;
    
                public Point(double x,double y){
                    this.x=x;
                    this.y=y;
                }
            }
        }
    
        public static void main(String[] args) {
            Program prog = new Program();
            Program.CCCircle c = prog.new CCCircle(10,10,5);
            Program.CCCircle.Point p = c.new Point(7,7);
            double epsilon = 0.0001;
            if(c.distance(p)-c.r > epsilon) {
                System.out.println("点在圆外");
            } else if(c.distance(p)-c.r <= epsilon && c.distance(p) - c.r >= -epsilon) { //这里特别注意,浮点数不能直接比较
                System.out.println("点在圆上");
            } else {
                System.out.println("点在圆内");
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题