从分数表中查找学生排名的 C++ 代码

假设我们有一个大小为 nx 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

以上是 从分数表中查找学生排名的 C++ 代码 的全部内容, 来源链接: utcz.com/z/297435.html

回到顶部