c语言 求空间中最远的两个点距离(函数参数用指针)

在三维的立体空间中有n个点,每个点有三个坐标(x,y,z),求这些点中相距最远的两个点的之间的距离。要求编写一个函数用于求两点间的距离。该函数参数用指针。输入要求:首先输... 在三维的立体空间中有n个点,每个点有三个坐标(x,y,z),求这些点中相距最远的两个点的之间的距离。要求编写一个函数用于求两点间的距离。该函数参数用指针。
输入要求:首先输入一个正整数n,代表有n个点,接下来有n行的数据输入,每行3个数,代表每个点的坐标。n<10
输出要求:输出相距最远的两点间的距离,四舍五入保留两位有效数字
展开
 我来答
丿艾瑞灬莉娅
2018-04-22 · TA获得超过916个赞
知道小有建树答主
回答量:926
采纳率:78%
帮助的人:444万
展开全部

你这个题的数据量很小(n<10),所以完全可以暴力求解

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

typedef struct point
{
    double x, y, z;
}Point;

double GetDistance(const Point *a, const Point *b)
{
    return sqrt( (a->x-b->x)*(a->x-b->x)+
                 (a->y-b->y)*(a->y-b->y)+
                 (a->z-b->z)*(a->z-b->z) );
}
    
int main()
{
    int i, j, n;
    Point p[10];
    double res = 0, distance = 0;
    
    scanf("%d", &n);    
    for(i = 0; i < n; i++)
        scanf("%lf %lf %lf", &p[i].x, &p[i].y, &p[i].z);
        
    for(i = 0; i < n-1; i++)
    {
        for(j = i+1; j < n; j++)
        {
            distance = GetDistance(&p[i], &p[j]);
            res = distance>res ? distance:res;
        }
    }
    printf("%.2lf\n", res);        
    
    return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式