看起来并没有什么问题。。
(容易打脸)
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct zb{
int x,y,z;
};zb a[100005];
bool cmp(zb x,zb y)
{
return x.z<y.z;
}
int main()
{
int n;
double z=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
}
sort(a+1,a+n+1,cmp);
// for(int i=1;i<=n-1;i++)被舍去的冒泡排序,也不知道对不对 。。。
// for(int j=1;j<=n-1;j++)
// {
// if(a[j].z>a[j+1].z)
// swap(a[j].z,a[j+1].z);
// }
for(int i=2;i<=n;i++)
{
z+=sqrt((a[i].x-a[i+1].x)*(a[i].x-a[i+1].x)+(a[i].y-a[i+1].y)*(a[i].y-a[i+1].y)+(a[i].z-a[i+1].z)*(a[i].z-a[i+1].z));
}
printf("%.3lf",z);
return 0;
}