台中女中程式解題系統:b021: 指考分發

若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。

題目連結 http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=b021

此題用struct並改寫C++語言sort的比較函數comp即可。
  1. struct Score  
  2. {  
  3.     int n;  
  4.     int total;  
  5.     int math;  
  6. };  
  7.   
  8. int cmp(Score s1, Score s2)  
  9. {  
  10.     if(s1.total == s2.total)  
  11.     {  
  12.         return s1.math > s2.math;  
  13.     }  
  14.     else  
  15.         return s1.total > s2.total;  
  16. }  
  17.   


程式碼:
  1. #include <iostream>  
  2. #include <vector>  
  3. #include <algorithm>  
  4.   
  5. struct Score  
  6. {  
  7.     int n;  
  8.     int total;  
  9.     int math;  
  10. };  
  11.   
  12. int cmp(Score s1, Score s2)  
  13. {  
  14.     if(s1.total == s2.total)  
  15.     {  
  16.         return s1.math > s2.math;  
  17.     }  
  18.     else  
  19.         return s1.total > s2.total;  
  20. }  
  21.   
  22. using namespace std;  
  23.   
  24. int main()  
  25. {  
  26.     int n;  
  27.     cin >> n;  
  28.     Score s[n];  
  29.   
  30.     for(int i = 0; i < n; i++)  
  31.     {  
  32.         int no, chi, eng, math, phy, che;  
  33.         cin >> no >> chi >> eng >> math >> phy >> che;  
  34.         s[i].n = no;  
  35.         s[i].total = chi + eng + math + phy + che;  
  36.         s[i].math = math;  
  37.     }  
  38.   
  39.     sort(s, s + n, cmp);  
  40.   
  41.     for(int i = 0; i < n; i++)  
  42.         cout << s[i].n << endl;  
  43.   
  44.     return 0;  
  45. }  

沒有留言: