OJ2001题计算两点间的距离

本文介绍了一个简单的C语言程序,用于计算二维平面上任意两点之间的距离。程序通过读取输入的两个点的坐标,并利用距离公式计算这两点之间的直线距离。
Problem Description
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

Input
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

Output
对于每组输入数据,输出一行,结果保留两位小数。

Sample Input
0 0 0 1 0 1 1 0

Sample Output
1.00 1.41
#include <stdio.h>
#include <math.h>
void main() 
{
	float x1,y1,x2,y2;
	while(scanf("%f %f %f %f",&x1,&y1,&x2,&y2)!=EOF)
	{
		 printf("%.2f\n",sqrt(pow(x1-x2,2)+pow(y1-y2,2)));
	}
}


在 Java 中,根据用户输入的点 A 和点 B 的坐标计算两点距离,可以使用数学公式:设两个点 A、B 以及坐标分别为 :A(X1,Y1)、B(X2,Y2),则 A 和 B 两点距离为 $\sqrt{(X2 - X1)^2 + (Y2 - Y1)^2}$。以下是几种实现方式: ### 方法一 ```java import java.util.Scanner; public class DistanceCalculation { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入点 A 的 x 坐标"); double x1 = sc.nextDouble(); System.out.println("请输入点 A 的 y 坐标"); double y1 = sc.nextDouble(); System.out.println("请输入点 B 的 x 坐标"); double x2 = sc.nextDouble(); System.out.println("请输入点 B 的 y 坐标"); double y2 = sc.nextDouble(); double distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); System.out.println("两点距离是: " + distance); } } ``` ### 方法二 ```java import java.util.Scanner; public class ABSdemo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个经度"); double oj = sc.nextDouble(); System.out.println("请输入第一个维度"); double ow = sc.nextDouble(); System.out.println("请输入第二个经度"); double tj = sc.nextDouble(); System.out.println("请输入第二个维度"); double tw = sc.nextDouble(); double abs = Math.abs(pow(oj - tj, 2) + pow(ow - tw, 2)); double sqrt = Math.sqrt(abs); System.out.println("距离是:" + sqrt); } public static double pow(double a, double b) { return StrictMath.pow(a, b); } } ``` ### 方法三 ```java import java.util.Scanner; public class shixun2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请依次输入点 A 的 x 坐标、点 A 的 y 坐标、点 B 的 x 坐标、点 B 的 y 坐标,用空格分隔"); double a = sc.nextDouble(); double b = sc.nextDouble(); double c = sc.nextDouble(); double d = sc.nextDouble(); double sum = Math.sqrt(((c - a) * (c - a)) + ((d - b) * (d - b))); System.out.println(String.format("%.2f", sum)); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值