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

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 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?