Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ kiểm tra số sinh viên có điểm cao hơn sinh viên đầu tiên

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