awfkapjfak 2022-04-08 16:56 采纳率: 68.8%
浏览 70
已结题

java 三角形面积编程

问题遇到的现象和发生背景
应用面向对象的编程思想,编写计算三角形面积的程序。

问题相关代码,请勿粘贴截图
import java.util.Scanner;;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
triAngle t = new triAngle(in.nextDouble(), in.nextDouble(), in.nextDouble());

System.out.println("[]"+"能构成三角形,面积:"+t.getArea());

}
}

class triAngle {
private double a;
private double b;
private double c;

triAngle(double a, double b, double c){
double max;
if(a > b && a > c) {
max = a;
}else if(b > c) {
max = b;
}else {
max = c;
}

if(a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a) {
    this.a = a;
    this.b = b;
    this.c = c;
}else if(max > 0) {
    this.a = max;
    this.b = max;
    this.c = max;
}else {
    this.a = 0;
    this.b = 0;
    this.c = 0;
}

}

double getArea() {
//S=根号[s(s-a)(s-b)(s-c)]
double s = (a + b + c) / 2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
}

运行结果
输入用例
3
4
5
输出用例
[3.0,4.0,5.0]能构成三角形,面积:6.0
朋友们,我怎么样才能将我从键盘输入的数据在System.out.println("[]"+"能构成三角形,面积:"+t.getArea());这个中括号里面输出来呀

  • 写回答

1条回答 默认 最新

  • a5156520 2022-04-08 17:15
    关注

    把三角形的三条边用三个double型变量读入,然后传入打印语句中输出,修改如下:

    import java.util.Scanner;
    public class Test{
        
        
        public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        double a = in.nextDouble();
        double b = in.nextDouble();
        double c = in.nextDouble();
        triAngle t = new triAngle(a,b,c);
    
        System.out.println("["+a+","+b+","+c+"]"+"能构成三角形,面积:"+t.getArea());
        }
        }
    
        class triAngle {
        private double a;
        private double b;
        private double c;
    
        triAngle(double a, double b, double c){
        double max;
        if(a > b && a > c) {
        max = a;
        }else if(b > c) {
        max = b;
        }else {
        max = c;
        }
    
        if(a > 0 && b > 0 && c > 0 && a + b > c && a + c > b && b + c > a) {
            this.a = a;
            this.b = b;
            this.c = c;
        }else if(max > 0) {
            this.a = max;
            this.b = max;
            this.c = max;
        }else {
            this.a = 0;
            this.b = 0;
            this.c = 0;
        }
        }
    
        double getArea() {
        //S=根号[s(s-a)(s-b)(s-c)]
        double s = (a + b + c) / 2;
        return Math.sqrt(s * (s - a) * (s - b) * (s - c));
        }
    }
    
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

    报告相同问题?

    问题事件

    • 已结题 (查看结题原因) 4月13日
    • 已采纳回答 4月9日
    • 创建了问题 4月8日

    悬赏问题

    • ¥15 我现在有一些关于提升机故障的专有文本数据,量也不多,我在label studio上进行了关系和实体的标注,完成了知识图谱的构造,那么我使用生成式模型的话,我能做哪些工作来写我的论文?
    • ¥15 电脑连不上无线网络如下诊断反馈应该如何操作
    • ¥15 telegram api 使用forward_messages方法转发消息时,目标群组里面会出现此消息来源,如何隐藏?
    • ¥15 在ubuntu中无法连接到远程服务器传输文件
    • ¥15 关于#tensorflow#的问题:有没有什么方法可以让机器自己学会像素风格的图片
    • ¥15 Oracle触发器字段变化时插入指定值
    • ¥15 docker无法进入容器内部
    • ¥15 qt https 依赖openssl 静态库
    • ¥15 python flask 报错
    • ¥15 改个密码引发的项目启动问题