使用qsort全WA请问是为什么?
  • 板块P5143 攀爬者
  • 楼主yyz_yyds
  • 当前回复4
  • 已保存回复4
  • 发布时间2020/12/7 01:01
  • 上次更新2023/11/5 06:28:41
查看原帖
使用qsort全WA请问是为什么?
394821
yyz_yyds楼主2020/12/7 01:01
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#define LL long long
#define DB double
#define ULL unsigned long long
int cmp(const void*,const void*);
int a[50005][4],i,n;
double sum=0;
int main()
{
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]);
	}
	qsort(a,n,sizeof(a[0]),cmp);
	for(i=2;i<=n;i++)
	{
		sum+=sqrt((a[i][1]-a[i-1][1])*(a[i][1]-a[i-1][1])+(a[i][2]-a[i-1][2])*(a[i][2]-a[i-1][2])+(a[i][3]-a[i-1][3])*(a[i][3]-a[i-1][3]));
	}
	printf("%.3f",sum);
}
int cmp(const void *p1,const void *p2)
{
	if(((int *)p1)[3]>((int *)p2)[3])
	return 1;
	else if(((int *)p1)[3]<((int *)p2)[3])
	return -1;
	else
	return 0;
} 
2020/12/7 01:01
加载中...