結構體的使用及sort函式
阿新 • • 發佈:2019-01-05
#include <cstdio> #include <algorithm> #include <iostream> using namespace std; struct student { int chi; int mat; int eng; int sum; int num; }a[310]; bool complare(student a,student b) { if(a.sum > b.sum) return 1; else if(a.sum < b.sum) return 0; else{ if(a.chi > b.chi) return 1; else if(a.chi < b.chi)return 0; else{ if(a.num < b.num) return 1; else return 0;} } } /*bool complare(student a,student b) { if(a.sum != b.sum){ if(a.sum > b.sum) return 1; else return 0; } else { if(a.chi != b.chi){ if(a.chi > b.chi) return 1; else return 0; } else{ if(a.num < b.num)return 1; else return 0; } }第二種表示方法 */ int main() { int n; scanf("%d",&n); for(int t = 0;t < n; t++){ scanf("%d %d %d",&a[t].chi,&a[t].eng,&a[t].mat); a[t].sum = a[t].chi + a[t].eng + a[t].mat; //計算sum a[t].num = t + 1;} sort(a,a+n,complare);//按照上面規則比較大小 for(int i=0;i < 5;i++) cout << a[i].num << ' ' <<a[i].sum << endl; return 0; }