Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

รหัส C++ หาอันดับนักเรียนจากตารางคะแนน


สมมติว่าเรามีอาร์เรย์ 2 มิติขนาด n x 4 พิจารณาว่ามีนักเรียน n คน และรหัสของพวกมันเริ่มต้นจาก 0 ถึง n-1 แต่ละคนมีคะแนนภาษาอังกฤษ ภูมิศาสตร์ คณิตศาสตร์ และประวัติศาสตร์สี่คะแนน ในตาราง นักเรียนจะถูกจัดเรียงตามผลรวมของคะแนนที่ลดลง หากนักเรียนสองคนขึ้นไปมีผลรวมเท่ากัน นักเรียนเหล่านี้จะถูกจัดเรียงตามการเพิ่มรหัส เราต้องหา id ของนักเรียนที่มี id เป็น 0

ดังนั้นหากอินพุตเป็นแบบ

100 98 100 100
100 100 100 100
90 99 90 100
100 98 60 99

แล้วผลลัพธ์จะเป็น 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