蒟蒻求助(sort自定义80分)
查看原帖
蒟蒻求助(sort自定义80分)
478755
Karis楼主2021/4/25 11:21

为什么这两个运行结果出来是一样的,但注释的这个有两个点没过呢???

#include<iostream>
#include<algorithm>	
using namespace std;
struct stu{
	int yw,sx,yy,numb,sum;
}; 
stu a[301];
int cmp(stu,stu);
int n;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].yw>>a[i].sx>>a[i].yy;
		a[i].numb=i;
		a[i].sum=a[i].yw+a[i].sx+a[i].yy;
	}
	sort(a+1,a+n+1,cmp);//sort左开右闭 
	for(int i=1;i<5;i++){
		cout<<a[i].numb<<' '<<a[i].sum<<endl;
	}
	cout<<a[5].numb<<' '<<a[5].sum;
	return 0;
}
int cmp(stu a,stu b){
	/*return (a.sum>b.sum)||(a.sum==b.sum&&a.yw>b.yw)||(a.sum==b.sum&&a.numb<b.numb);*/
	if(a.sum==b.sum){
		if(a.yw==b.yw)
			return a.numb<b.numb;
		else
			return a.yw>b.yw;
	}
	else
		return a.sum>b.sum;
	//为什么这两个运行结果出来是一样的,但注释的这个有两个点没过呢??? 
}
2021/4/25 11:21
加载中...