Birdy_x 2023-05-18 15:23 采纳率: 62.5%
浏览 36

java类的使用测试点一个没过

Java类的使用中,一个测试点不能过

img


import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc  = new Scanner(System.in);
        double a =sc.nextDouble();
        if(a<0) a = -a;
        
        double b = sc.nextDouble();
        if(b<0) b = -b;
        Square s = new Square(a);
        Circle c = new Circle(b);
        System.out.printf("边长为%.1f的正方形周长为%.1f,面积为%.1f\n",a,s.diameter(a),s.getArea(a));
        System.out.printf("半径为%.1f的圆周长为%.2f,面积为%.2f",b,c.diameter(b),c.getArea(b));

    }
}
abstract class Shape{
    private double r;

    public Shape(){};
    public Shape(double r) {
        this.r = r;
    }

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }
    public abstract double diameter(double r);
    public abstract double getArea(double r);
}
class Circle extends Shape{
    double PI = 3.14;
    public Circle(double r){
        super(r);
    }

    @Override
    public double diameter(double r) {
        return 2.0*PI*r;
    }

    @Override
    public double getArea(double r) {
        return PI*r*r;
    }

}
class Square extends Shape{

    public Square(double r){
        super(r);
    }
    @Override
    public double diameter(double r) {
        return 4.0*r;
    }

    @Override
    public double getArea(double r) {
        return r*r;
    }
}


  • 写回答

2条回答 默认 最新

  • 坚持是一种态度 Java领域优质创作者 2023-05-18 16:13
    关注

    代码逻辑没啥问题,是不是少了对1000的判断,不确定,贴个加了判断的代码

    public class Main {
        public static void main(String[] args) {
            System.out.println("输入在一行中给出2个绝对值不超过1000的数A和数B:");
            Scanner sc  = new Scanner(System.in);
            double a = Math.abs(sc.nextDouble());
            double b = Math.abs(sc.nextDouble());
            while (a > 1000 || b > 1000) {
                System.out.println("输入在一行中给出2个绝对值不超过1000的数A和数B:");
                a = Math.abs(sc.nextDouble());
                b = Math.abs(sc.nextDouble());
            }
    
            Square s = new Square(a);
            Circle c = new Circle(b);
            System.out.printf("边长为%.1f的正方形周长为%.1f,面积为%.1f\n",a,s.diameter(a),s.getArea(a));
            System.out.printf("半径为%.1f的圆周长为%.2f,面积为%.2f",b,c.diameter(b),c.getArea(b));
    
        }
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 5月18日