c 语言的qsort函数排序 过不了 0分
查看原帖
c 语言的qsort函数排序 过不了 0分
1324050
knight_sun楼主2024/8/8 18:36
#include<stdio.h>
#include<math.h>
#include<stdlib.h>

int n;
struct node{
	int x,y,z;
}a[500005];

int cmp(const void *a,const void *b)
{
	if((*(node *)a).z==(*(node *)b).z&&(*(node *)a).z==(*(node *)b).z)
		return (*(node *)a).y - (*(node *)b).y;
	if((*(node *)a).z==(*(node *)b).z)
		return (*(node *)a).x -(*(node *)b).x;	
	return (*(node *)a).z-(*(node *)b).z;
}


int main()
{
	scanf("%d",&n);
	for(int i = 0;i<n;i++)
		scanf("%d %d %d",&a[i].x,&a[i].y,&a[i].z);
	qsort(a,n,sizeof(a[0]),cmp);
	double ans = 0.0;
	for(int i = 0;i<n-1;i++)
		ans+=sqrt(pow(a[i].x-a[i+1].x,2)+pow(a[i].x-a[i+1].z,2)+pow(a[i].z-a[i+1].z,2));
	printf("%.3lf",ans);
	return 0;
}
2024/8/8 18:36
加载中...