29-语言入门-29-两点距离
描述
输入两点坐标(X1,Y1),(X2,Y2)(0<=x1,x2,y1,y2<=1000),计算并输出两点间的距离。
输入
第一行输入一个整数n(0<n<=1000),表示有n组测试数据;
随后每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
输出
对于每组输入数据,输出一行,结果保留两位小数。
样例输入
2
0 0 0 1
0 1 1 0
样例输出
1.00
输入两点坐标(X1,Y1),(X2,Y2)(0<=x1,x2,y1,y2<=1000),计算并输出两点间的距离。
输入
第一行输入一个整数n(0<n<=1000),表示有n组测试数据;
随后每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。
输出
对于每组输入数据,输出一行,结果保留两位小数。
样例输入
2
0 0 0 1
0 1 1 0
样例输出
1.00
1.41
代码:
#include <stdio.h>
#include <math.h>
//计算两点间的距离并打印结果
static void printLen(double x1,double y1,double x2,double y2);
int main()
{
int readLen = 0;
scanf("%d",&readLen);
getchar();
while(readLen>0)
{
double x1,y1,x2,y2;
scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2);
getchar();
printLen(x1,y1,x2,y2);
--readLen;
}
return 0;
}
//计算两点间的距离并打印结果
static void printLen(double x1,double y1,double x2,double y2)
{
double result = sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
printf("%.2f\n",result);
}
本题最大的失误是:题目要求输入的坐标是实数,而给出的值确实整数,导致写代码的时候,输入的数据都按照int取值了。
崩溃,崩溃,欲哭无泪……