社区讨论

80分!!cmp有问题但不知道错在哪里

P1093[NOIP 2007 普及组] 奖学金参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lyyjbsf2
此快照首次捕获于
2024/07/23 22:52
2 年前
此快照最后确认于
2024/07/24 08:23
2 年前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
struct student{
	int yw,sx,yy,sum;
	int id;
};
bool cmp(student a,student b){
	if(a.sum==b.sum) {
	    if (a.yw==b.yw){
		    if(a.id<b.id){
		    	return a.id;}
		    else return b.id;	
			}
			if(a.yw>b.yw){
				return a.yw;
			}
			else return b.yw ;
		}
	else return a.sum>b.sum;
}
int main(){
    int n;
    cin>>n;
    student s[n];
    for(int i=0;i<n;i++){
    	s[i].id=i+1;
        cin>>s[i].yw>>s[i].sx>>s[i].yy;
        s[i].sum=s[i].yw+s[i].sx+s[i].yy;
	}
	sort(s,s+n,cmp);
	for(int m=0;m<5;m++){
		cout<<s[m].id<<' '<<s[m].sum <<endl;
	}
    return 0;
}                                                                                        

回复

3 条回复,欢迎继续交流。

正在加载回复...