使用分數表查詢學生排名的 C++ 程式碼


假設我們有一個大小為 n x 4 的二維陣列。考慮有 n 個學生,他們的 id 從 0 到 n-1 開始。他們每個人都有四門成績:英語、地理、數學和歷史。在該表格中,學生將按分數總和降序排列。如果兩個或更多學生的分數總和相同,則這些學生按 id 升序排列。我們必須找到 id 為 0 的學生的 id。

因此,如果輸入類似

10098100100
100100100100
909990100
100986099

則輸出將為 2

步驟

為此,我們將按照以下步驟操作 -

n := size of table
r := 1
p := table[0, 0] + table[0, 1] + table[0, 2] + table[0, 3]
for initialize i := 1, when i < n, update (increase i by 1), do:
   if table[i, 0] + table[i, 1] + table[i, 2] + table[i, 3] > p,
then:
   (increase r by 1)
return r

示例

讓我們檢視以下實現,以加深理解 -

#include <bits/stdc++.h>
using namespace std;
int solve(vector<vector<int>> table){
   int n = table.size();
   int r = 1;
   int p = table[0][0] + table[0][1] + table[0][2] + table[0][3];
   for (int i = 1; i < n; i++){
      if (table[i][0] + table[i][1] + table[i][2] + table[i][3] > p)
         r++;
   }
   return r;
}
int main(){
   vector<vector<int>> table = { { 100, 98, 100, 100 }, { 100, 100, 100, 100 }, { 90, 99, 90, 100 }, { 100, 98, 60, 99 } };
   cout << solve(table) << endl;
}

輸入

{ { 100, 98, 100, 100 }, { 100, 100, 100, 100 }, { 90, 99, 90, 100 }, { 100, 98, 60, 99 } }

輸出

2

更新於:2022-03-15

823 次瀏覽

開啟你的 職業

透過完成該課程獲得認證

開始吧
廣告