KLF. 2023-04-11 20:31 采纳率: 28.6%
浏览 20
已结题

Java cmd报错找不到符号

java cmd报错找不到符号

代码是这样的:

import java.util.Scanner;
public class Sanjiaoxing{        
    private int a;
    private int b;
    private int c;
    public void Delta(int A,int B, int C){
        this.a=A;
        this.b=B;
        this.c=C;
    }
    public double Area() {
        double d=(a+b+c)/2;
        return Math.sqrt(d*(d-a)*(d-b)*(d-c));    
    }    
    public static void main(String args[]) {
        Scanner input=new Scanner(System.in);            
        int a,b,c;                        
        System.out.print("输入三条边:");
        a=input.nextInt();
        b=input.nextInt();
        c=input.nextInt();
        if(a+b>c && a+c>b && b+c>a) {
            Delta s[]=new Delta(a,b,c);
            System.out.println("面积:"+s.Area());
        }
        else{
            int min=a;
            if(b<min)
                min=b;
            if(c<min)
                min=c;
            Delta s[]=new Delta(min,min,min);
            System.out.println("面积:"+s.Area());
            }
        }
}

img


想了好久,为啥Delta成类了

  • 写回答

3条回答 默认 最新

  • Leodong. 2023-04-11 20:50
    关注

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
    您的代码中出现了一个错误,Delta 是一个方法,不应该作为类名使用。在代码中,您使用 Delta 来定义了一个数组,但是 Delta 并没有被定义为一个类,所以 Java 编译器无法识别 Delta 类型的数组。

    您可以将 Delta 方法重命名为 setSides,这样就可以避免类名与方法名相同的问题。修改后的代码如下:

    import java.util.Scanner;
    
    public class Sanjiaoxing {
        private int a;
        private int b;
        private int c;
    
        public void setSides(int A, int B, int C) {
            this.a = A;
            this.b = B;
            this.c = C;
        }
    
        public double area() {
            double d = (a + b + c) / 2;
            return Math.sqrt(d * (d - a) * (d - b) * (d - c));
        }
    
        public static void main(String args[]) {
            Scanner input = new Scanner(System.in);
            int a, b, c;
            System.out.print("输入三条边:");
            a = input.nextInt();
            b = input.nextInt();
            c = input.nextInt();
            if (a + b > c && a + c > b && b + c > a) {
                Sanjiaoxing s = new Sanjiaoxing();
                s.setSides(a, b, c);
                System.out.println("面积:" + s.area());
            } else {
                int min = a;
                if (b < min)
                    min = b;
                if (c < min)
                    min = c;
                Sanjiaoxing s = new Sanjiaoxing();
                s.setSides(min, min, min);
                System.out.println("面积:" + s.area());
            }
        }
    }
    

    在上面的代码中,我们将 Delta 改为了 setSides,同时也将 Area 改为了 area,这样代码就可以正确编译和运行了。

    希望这个解答能够帮助您解决问题。如果您还有其他问题,可以继续提问。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月20日
  • 已采纳回答 4月12日
  • 创建了问题 4月11日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分