#include
#include
#include
#define M 10
typedef struct {
int x;
int y;
int z;
}Point[M];
double distance(int x,int y,int z,int x1,int y1,int z1)
{
return ((double)sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1)+(z-z1)*(z-z1)));
}
int f(const void c,const void *d)
{
return ((int*)c- (int)d);
}
int main()
{
Point point;
int k,n;
int x1,y1,z1;
int i=0;
int j;
int t=0;
double sum[50];
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d%d%d",&x1,&y1,&z1);
point[i].x=x1;
point[i].y=y1;
point[i].z=z1;
i++;
}
for(j=0;j<i;j++)
{
for(k=j+1;k<i;k++)
{
sum[t]=distance(point[j].x,point[j].y,point[j].z,point[k].x,point[k].y,point[k].z);
}
}
qsort(sum,i,sizeof(int),f);
n=i;
for(i=0;i<n;i++)
printf("%lf ",sum[i]);
return 0;
}
快速排序函数qsort
不可以对双精度的数进行排序吗?
写成
qsort(sum,i,sizeof(double),f)
不可以吗?
按照输入的点,任意两个点的距离大小进行快速排序,怎么修改
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答
- threenewbee 2015-06-30 15:24关注
可以是可以,但是
int f(const void c,const void d)
{
return ((int)c- (int)d);
}这个你写错了
应该转换成double *解决 无用评论 打赏 举报
悬赏问题
- ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
- ¥15 如何在scanpy上做差异基因和通路富集?
- ¥20 关于#硬件工程#的问题,请各位专家解答!
- ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
- ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
- ¥30 截图中的mathematics程序转换成matlab
- ¥15 动力学代码报错,维度不匹配
- ¥15 Power query添加列问题
- ¥50 Kubernetes&Fission&Eleasticsearch
- ¥15 報錯:Person is not mapped,如何解決?