问题标题:
【一道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
点击显示
其它推荐
热门其它推荐