Java实现坐标点距离计算时代码运行结果与预期不符问题排查
代码问题分析及修正
你代码的核心错误是两点距离的计算公式写错了:
- 平面直角坐标系中两点
(x1,y1)和(x2,y2)的正确欧氏距离公式为:√[(x2-x1)² + (y2-y1)²] - 你当前代码中的计算逻辑是
√(x2 - x1² + y2 - y1²),完全不符合公式要求,自然会输出错误结果。 - 另外你预先定义了
xDist、yDist两个变量但没有使用,合理使用这两个变量存储坐标差值可以降低公式写错的概率。
修正后的代码如下:
import java.util.Scanner; public class CoordinateGeometry { public static void main(String[] args) { Scanner scnr = new Scanner(System.in); double x1; double y1; double x2; double y2; double pointsDistance; double xDist; double yDist; x1 = scnr.nextDouble(); y1 = scnr.nextDouble(); x2 = scnr.nextDouble(); y2 = scnr.nextDouble(); // 先计算坐标差值 xDist = x2 - x1; yDist = y2 - y1; // 代入正确公式计算距离 pointsDistance = Math.sqrt(Math.pow(xDist, 2) + Math.pow(yDist, 2)); System.out.println(pointsDistance); scnr.close(); } }
内容的提问来源于stack exchange,提问作者Elder Son
相关产品推荐
相关产品推荐

