两点距离
时间限制:
3000
ms | 内存限制:
65535
KB
难度:
1
-
描述
-
输入两点坐标(X1,Y1),(X2,Y2)(0<=x1,x2,y1,y2<=1000),计算并输出两点间的距离。
-
输入
-
第一行输入一个整数n(0<n<=1000),表示有n组测试数据;
随后每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
输出
- 对于每组输入数据,输出一行,结果保留两位小数。 样例输入
-
20 0 0 10 1 1 0
样例输出
-
1.001.41
来源
- [苗栋栋]原创 上传者
- 苗栋栋
普通代码:
#include<stdio.h>
#include<math.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
double x1,y1,x2,y2;
double m,n;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
m=(x2-x1)*(x2-x1)*1.0+(y2-y1)*(y2-y1)*1.0;
n=sqrt(m);
printf("%.9lf\n",n);
}
#include<math.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
double x1,y1,x2,y2;
double m,n;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
m=(x2-x1)*(x2-x1)*1.0+(y2-y1)*(y2-y1)*1.0;
n=sqrt(m);
printf("%.9lf\n",n);
}
}
使用外部函数:
#include<stdio.h>
#include<math.h>
double fun(double a,double b,double c,double d)
{
double s;
s=sqrt((c-a)*(c-a)+(d-b)*(d-b));
return s;
#include<math.h>
double fun(double a,double b,double c,double d)
{
double s;
s=sqrt((c-a)*(c-a)+(d-b)*(d-b));
return s;
}
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
double x1,y1,x2,y2;
double s;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
s=fun(x1,y1,x2,y2);
printf("%.2lf\n",s);
}
return 0;
}
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
double x1,y1,x2,y2;
double s;
scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2);
s=fun(x1,y1,x2,y2);
printf("%.2lf\n",s);
}
return 0;
}