29-语言入门-29-两点距离

 
描述
输入两点坐标(X1,Y1,X2,Y2(0<=x1,x2,y1,y2<=1000),计算并输出两点间的距离。

输入
第一行输入一个整数n0<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 ",result);
}
 
 
 
本题最大的失误是:题目要求输入的坐标是实数,而给出的值确实整数,导致写代码的时候,输入的数据都按照int取值了。
崩溃,崩溃,欲哭无泪……
 
 
 
原文地址:https://www.cnblogs.com/sharpfeng/p/5141888.html