Java如何将三角形坐标变量x1/y1等改为数组存储实现面积计算
Java代码数组改写实现思路
你可以通过声明两个长度为3的double类型数组分别存储x、y坐标完成改造,具体修改步骤如下:
- 第一步:替换原有的6个独立坐标变量声明,改为数组定义:
double[] x = new double[3]; double[] y = new double[3]; - 第二步:修改输入逻辑,可直接按下标赋值,也可通过循环简化输入代码:
// 循环读取3组坐标,每组依次为x、y值 for (int i = 0; i < 3; i++) { x[i] = input.nextDouble(); y[i] = input.nextDouble(); } - 第三步:调整面积计算逻辑,把原来的x1、y1等变量替换为对应数组下标取值即可,同时可以改用
Math.sqrt方法替代Math.pow(xx,0.5)求平方根,代码可读性更高:double side1 = Math.sqrt(Math.pow(x[1] - x[0], 2) + Math.pow(y[1] - y[0], 2)); double side2 = Math.sqrt(Math.pow(x[2] - x[1], 2) + Math.pow(y[2] - y[1], 2)); double side3 = Math.sqrt(Math.pow(x[0] - x[2], 2) + Math.pow(y[0] - y[2], 2)); double s = (side1 + side2 + side3) / 2; double area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
修改后完整可运行代码
/* (几何:三角形面积) 编写程序提示用户输入三角形的三个点 (x1, y1), (x2, y2), (x3, y3) 并输出面积 */ import java.util.Scanner; public class Exercise_02_19 { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 提示用户输入三角形三个点 System.out.print("请输入三角形的三个点坐标:"); // 用两个数组分别存储x、y坐标 double[] x = new double[3]; double[] y = new double[3]; for (int i = 0; i < 3; i++) { x[i] = input.nextDouble(); y[i] = input.nextDouble(); } // 计算三角形面积 double side1 = Math.sqrt(Math.pow(x[1] - x[0], 2) + Math.pow(y[1] - y[0], 2)); double side2 = Math.sqrt(Math.pow(x[2] - x[1], 2) + Math.pow(y[2] - y[1], 2)); double side3 = Math.sqrt(Math.pow(x[0] - x[2], 2) + Math.pow(y[0] - y[2], 2)); double s = (side1 + side2 + side3) / 2; double area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3)); // 输出结果 System.out.println("三角形的面积为 " + area); input.close(); } }
内容的提问来源于stack exchange,提问作者zucc0nit
相关产品推荐
相关产品推荐

