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 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥15 this signal is connected to multiple drivers怎么解决
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus