题目

定义表示二维平面坐标点的结构体 Point,从标准输入读入两点的坐标 (x1, y1) 和 (x2, y2),计算并输出两点之间的欧几里得几何距离(保留两位小数)。

输入格式:一行输入 4 个浮点数 x1 y1 x2 y2,以空格分隔。

输出格式:输出保留两位小数的浮点数,表示两点间的距离,末尾换行。

数据范围与约定:坐标均为 double 精度浮点数。

思路与算法

1. 结构体封装数据
使用 struct Point { double x; double y; }; 将相关的坐标数据打包为一个复合实体,提高代码的可读性与规范性。

2. 平面欧几里得距离
计算两点距离公式:d = √((x1 - x2)² + (y1 - y2)²)。利用 hypot(dx, dy) 或 sqrt(dx*dx + dy*dy),引入数学头文件 <math.h>。

完整程序

import java.util.Scanner;

// 自定义点结构类
class Point {
    double x;
    double y;

    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public double distanceTo(Point other) {
        double dx = this.x - other.x;
        double dy = this.y - other.y;
        return Math.sqrt(dx * dx + dy * dy);
    }
}

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double x1 = sc.nextDouble();
        double y1 = sc.nextDouble();
        double x2 = sc.nextDouble();
        double y2 = sc.nextDouble();

        Point p1 = new Point(x1, y1);
        Point p2 = new Point(x2, y2);

        System.out.printf("%.2f%n", p1.distanceTo(p2));
    }
}

运行示例

输入:

0 0 3 4

输出:

5.00