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("点在圆内");
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库