题目及翻译
题面
输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。
输入
输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
输出
对于每组输入数据,输出一行,结果保留两位小数。
输入样例
0 0 0 1
0 1 1 0
输出样例
1.00
1.41
题目思路
输入坐标,用两点距离公式计算输出即可。
注意事项
1.输入是实数,要用double型
2.Java会有一些蜜汁坑
AC代码
C
用时15MS 内存1240K 长度199B
#include<stdio.h>
#include<math.h>
int main(){
static double x1,x2,y1,y2,Ans;
while(~scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2))
printf("%0.2lf\n",sqrt(pow(x1 - x2,2.0) + pow(y1 - y2,2.0)));
return 0;
}
C++
用时0MS 内存1716K 长度260B
#include<iostream>
#include<iomanip>
#include<cmath>//c语言的头文件,尾缀.h改为前缀c
using namespace std;//引用命名空间
int main(){
static double x1,x2,y1,y2,Ans;
while(cin>>x1>>y1>>x2>>y2){
cout<<fixed<<setprecision(2);
cout<<sqrt(pow(x1 - x2,2.0) + pow(y1 - y2,2.0))<<endl;
}
return 0;
}
Java
用时358MS 内存9676K 长度498B
import java.util.Scanner;
public class Main {
public static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
double x1,x2,y1,y2,Ans;
while (sc.hasNext()){//这里不能用hasNextLine(),不然会WA
x1 = sc.nextDouble();
y1 = sc.nextDouble();
x2 = sc.nextDouble();
y2 = sc.nextDouble();
Ans = Math.sqrt(Math.pow(x1 - x2,2.0) + Math.pow(y1 - y2,2.0));
System.out.printf("%.2f%n",Ans);
}
}
}
本文作者 CSDN@扶她小藜
个人主页链接 https://blog.csdn.net/weixin_44579869