50分求助谢谢!!!

P1093 [NOIP2007 普及组] 奖学金

逻辑不对,你这样写c()每次都会在第一行直接return,后面的代码等于不存在 ```cpp #include<bits/stdc++.h> using namespace std; struct chengji{ int yw,sx,yy; int zf; int so; }a[10000]; bool c(chengji a,chengji b){ if (a.zf != b.zf) return a.zf>b.zf; if (a.yw != b.yw) return a.yw>b.yw; return a.so<b.so; } int main(){ int n; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].yw>>a[i].sx>>a[i].yy; a[i].zf=a[i].yw+a[i].sx+a[i].yy; a[i].so=i; } sort(a+1,a+n+1,c); for(int i=1;i<=5;i++){ cout<<a[i].so<<" "<<a[i].zf<<endl; } return 0; } ``````
by 杜都督 @ 2024-02-06 23:11:11


把c函数改成```cpp if ( a.z == b.z ) { if ( a.y == b.y ) { return a.nu < b.nu; } return a.y > b.y; } return a.z > b.z;
by wangqicheng1637 @ 2024-03-15 17:59:41


|