Cho n sinh viên, mỗi người 5 môn. Sinh viên đầu tiên là Kamal. Đếm số sinh viên có tổng điểm > Kamal. Định nghĩa lớp Student với Input() và calculateTotalScore().
Ví dụ: n=4, scores=[[25,45,32,42,30],[22,25,41,18,21],[37,42,48,45,25],[36,48,35,40,30]] → 2 (2 sinh viên cuối có điểm cao hơn)
Giải thuật
- Mảng Student s[n]
- Nạp điểm scores[i] vào s[i]
- kamal_sc = s[0].calculateTotalScore()
- count = 0
- Duyệt i=1..n-1: nếu s[i].calculateTotalScore() > kamal_sc thì count++
- Trả về count
Ví dụ minh họa
#include <iostream>
#include <vector>
using namespace std;
class Student{
public:
int score[5];
void input(vector<int> v){
for(int i = 0; i < 5; i++) score[i] = v[i];
}
int calculateTotalScore(){
int res = 0;
for(int i = 0; i < 5; i++) res += score[i];
return res;
}
};
int main(){
int n = 4;
vector<vector<int>> scores = {{25,45,32,42,30},{22,25,41,18,21},{37,42,48,45,25},{36,48,35,40,30}};
Student *s = new Student[n];
for(int i = 0; i < n; i++){
s[i].input(scores[i]);
}
int kamal_sc = s[0].calculateTotalScore();
int count = 0;
for(int i = 1; i < n; i++){
int total = s[i].calculateTotalScore();
if(total > kamal_sc){ count++; }
}
cout << count;
}
Đầu vào
4, {{25,45,32,42,30}, {22,25,41,18,21}, {37,42,48,45,25}, {36,48,35,40,30}}
Đầu ra
2