题目
结构体描述点坐标,求两点距离
思路
本题用结构体表示平面上的点,读入两点坐标,输出它们之间的距离。 定义 类 { 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