ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

习题5-3 使用函数计算两点间的距离

2022-01-03 15:34:50  阅读:158  来源: 互联网

标签:x1 dist 函数 double x2 两点 y1 习题 y2


本题要求实现一个函数,对给定平面任意两点坐标(x1​,y1​)和(x2​,y2​),求这两点之间的距离。

函数接口定义:

double dist( double x1, double y1, double x2, double y2 );

其中用户传入的参数为平面上两个点的坐标(x1, y1)和(x2, y2),函数dist应返回两点间的距离。

裁判测试程序样例:

#include <stdio.h>
#include <math.h>

double dist( double x1, double y1, double x2, double y2 );

int main()
{    
    double x1, y1, x2, y2;

    scanf("%lf %lf %lf %lf", &x1, &y1, &x2, &y2);
    printf("dist = %.2f\n", dist(x1, y1, x2, y2));

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

10 10 200 100

结尾无空行

输出样例:

dist = 210.24

结尾无空行

 以下是我的解题思路 

本题要求求两点坐标的距离,数学中求两点距离的公式为 d = \sqrt{(x_{2}-x_{1})^{2} + (y_{2}-y_{1})^{2}} ,可以看到,题目中的函数里定义了头文件 #include <math.h> ,则我们可以使用数学函数 sqrt() 来求根号,先来计算 (x_{2}-x_{1})^{2} + (y_{2}-y_{1})^{2} ,这里可以用次方的函数 pow函数 来计算。

函数原型:double pow(double x, double y)
功 能:计算 x^{y} 的值
返 回 值:计算结果
举例:

double a;
a = pow(3.14, 2); // 计算3.14的平方,并将结果保存在变量a中

但是本题只要求求平方,所以也可以采用连乘的形式,即(x_{2}-x_{1})*(x_{2}-x_{1}) + (y_{2}-y_{1})*(y_{2}-y_{1}) 。

具体代码如下

double dist( double x1, double y1, double x2, double y2 )
{
    double dis;
    dis = (x2-x1)*(x2-x1) + (y2-y1)*(y2-y1); //先求平方的和
    dis = sqrt(dis); //再求根号
    return dis;  //返回值
}

标签:x1,dist,函数,double,x2,两点,y1,习题,y2
来源: https://blog.csdn.net/nazonomaster/article/details/122287648

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有