字典翻译 问答 其它 【一道C++编程题!距离排序[问题描述]给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离.输入:输入包括两行,第一行】
问题标题:
【一道C++编程题!距离排序[问题描述]给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离.输入:输入包括两行,第一行】
问题描述:

一道C++编程题!

距离排序

[问题描述]

给出三维空间中的n个点(不超过10个),求出n个点两两之间的距离,并按距离由大到小依次输出两个点的坐标及它们之间的距离.

输入:

输入包括两行,第一行包含一个整数n表示点的个数,第二行包含每个点的坐标(坐标都是整数).点的坐标的范围是0到100,输入数据中不存在坐标相同的点.

输出:

对于大小为n的输入数据,输出n*(n-1)/2行格式如下的距离信息:

(x1,y1,z1)-(x2,y2,z2)=距离

其中距离保留到数点后面2位.

采用冒泡排序,快速排序,选择排序中的两种排序算法实现排序功能.

宫华泽回答:
  ///test.cpp:   ///CopyRight(c)2014VobileInc.   ///Author:XiaoH   ///Created:2014-06-23   #include   #include   #include   typedefstructpoint{   intx,y,z;   }POINT;   typedefstructdisdence{   POINTa,b;   doubledst;   }PD;   doubleSqu(doublenum){   returnnum*num;   }   doubleDistance(POINTa,POINTb){   returnsqrt(Squ(a.x-b.x)+Squ(a.y-b.y)+Squ(a.z-b.z));   }   intmain(){   POINTpt[10];   PDtmp,dst[45];   inti,j,k,n,N;   printf("数据点数:");   scanf("%d",&n);   if(n>10)n=10;   N=n*(n-1)/2;   for(i=0;i
点击显示
其它推荐
热门其它推荐
  • 其它