题目

结构体描述点坐标,求两点距离

思路

本题用结构体表示平面上的点,读入两点坐标,输出它们之间的距离。 定义 类 { double x,y; },读两个点,算 dx=x1-x2、dy=y1-y2,距离为 sqrt(dx*dx+dy*dy)。

解题分析

两点距离用 hypot(dx,dy) 或 sqrt(dx*dx+dy*dy)。结构体把 x、y 绑在一起,传参传 类。

函数简要说明

平面两点距离,即 sqrt(dx*dx + dy*dy),常用:

  • sqrt(x):平方根(math.h)。本题 sqrt(dx*dx + dy*dy) 即可。
  • hypot(dx, dy)(C99):等价于 sqrt(dx*dx+dy*dy),数值上更稳,少一次溢出风险。
  • pow(x, y) 也能算平方根但不直观;距离题优先 hypot 或 sqrt。

函数简要说明

两点距离:

  • Math.hypot(dx, dy):等价于 sqrt(dx*dx+dy*dy),数值稳定,优先使用。
  • Math.sqrt(dx*dx + dy*dy):与 C 写法相同。
  • System.out.printf("%.2f%n", d) 输出距离。

完整程序

import java.io.*;

public class Main {
    public static void main(String[] args) {
        double x1 = 0.0, y1 = 0.0, x2 = 3.0, y2 = 4.0;
        double dx = x1 - x2, dy = y1 - y2;
        System.out.printf("%.2f%n", Math.sqrt(dx * dx + dy * dy));
    }
}

运行示例

输出:

5.00