6 solutions
-
4
#include<bits/stdc++.h> using namespace std; int n; struct stu{ string name; int exam; }; bool cmp(stu a,stu b){ if(a.exam==b.exam) return a.name<b.name;//若成绩一样比较名字 return a.exam>b.exam;//比较成绩 } int main(){ cin>>n; stu a[n]; for(int i=0;i<n;i++) cin>>a[i].name>>a[i].exam; sort(a,a+n,cmp);//sort快速比较 for(int i=0;i<n;i++) cout<<a[i].name<<" "<<a[i].exam<<endl; return 0; }
-
2
其实还挺简单的,就是修bug修了一个小时
#include<bits/stdc++.h> using namespace std; struct St{ string name; int score; }; bool gr(St a,St b){ if(a.score>b.score||(a.score==b.score&&a.name<b.name)){ return true; } else{ return false; } } St t[105]; int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>t[i].name>>t[i].score; } sort(t,t+n,gr); for(int i=0;i<n;i++){ cout<<t[i].name<<' '<<t[i].score; if(i<n-1){ cout<<endl; } } return 0; }
-
1
提供一个结构体排序的做法
#include<bits/stdc++.h>//万能头 using namespace std; struct St{ string name; int score; }t[105];//结构体 bool cmp(St a,St b){//比较函数 if(a.score>b.score||(a.score==b.score&&a.name<b.name)) return true; return false; } int main(){ int n;cin>>n; for(int i=0;i<n;i++) cin>>t[i].name>>t[i].score; sort(t,t+n,cmp);//排序(重点) for(int i=0;i<n;i++){ cout<<t[i].name<<' '<<t[i].score; if(i<n-1) cout<<endl; } return 0; }
-
1
#include <bits/stdc++.h> using namespace std; struct student{ string name; int score; }; bool cmp(student a,student b){ if(a.score==b.score)return a.name<b.name; return a.score>b.score; } int main(){ int n;student s[105]; cin >> n; for (int i = 0;i < n;i++){ cin >> s[i].name >> s[i].score; } sort(s,s + n,cmp); for(int i=1;i<=n;i++){ cout<<s[i-1].name<<" "<<s[i-1].score<<'\n'; } return 0; }
你好@huangminzhe
-
1
#include <bits/stdc++.h> using namespace std; struct st{ string name; int score; }; bool cmp(st b,st c){ if (b.score == c.score){ return b.name < c.name; } return b.score > c.score; } int main(int argc, char **argv){ int n;st a[20]; cin >> n; for (int i = 0;i < n;i++){ cin >> a[i].name >> a[i].score; } sort(a,a + n,cmp); for (int i = 0;i < n;i++){ cout << a[i].name << ' ' << a[i].score << "\n"; } return 0; }
又只有我发题解?😕
-
0
#include<iostream> #include<string> #include<algorithm> using namespace std; struct student{ string name; short score; }; bool px(student a,student b); int main(){ int n; cin >>n; student a[n]; for(int i=0;i<n;i++){ cin >>a[i].name >>a[i].score; } sort(a,a+n,px); for(int i=0;i<n;i++){ cout <<a[i].name <<" " <<a[i].score <<"\n"; } } bool px(student a,student b){ if(a.score<b.score)return 0; if(a.score>b.score)return 1; if(a.name>b.name)return 0; else return 1; }
附赠期中考试青锋作坊虚拟成绩单
- 1
Information
- ID
- 664
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 181
- Accepted
- 46
- Uploaded By