n명의 학생이 5개 과목에서 점수를 받았다고 가정합니다. 첫 번째 점수는 Kamal을 위한 것이고 다른 학생들을 위한 n-1개의 추가 점수가 있으며 각 학생은 5개의 과목을 가지고 있습니다. Kamal보다 더 많은 점수를 받은 학생의 수를 계산해야 합니다. 여기에서 학생이라는 클래스를 정의하여 각 학생의 점수를 로드합니다. 이 클래스에는 입력을 받는 하나의 Input() 함수와 주어진 5개 점수에서 학생의 점수를 계산하는 computeTotalScore() 함수가 있습니다.
따라서 입력이 다음과 같으면 n =4 점수 =[[25,45,32,42,30],[22,25,41,18,21],[37,42,48,45,25],[ 36,48,35,40,30]], 마지막 두 학생의 점수가 Kamal보다 높기 때문에 출력은 2가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
s :=n개의 요소가 있는 학생 유형 객체의 배열
-
initialize i :=0의 경우 i
-
모든 점수[i]를 s[i]에 로드
-
-
kamal_sc :=s[0]의 총점
-
개수 :=0
-
initialize i :=1의 경우 i
-
total :=s[i]의 총점
-
total> kamal_sc인 경우:
-
(1씩 증가)
-
-
-
반환 횟수
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#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;
}
입력
4, {{25,45,32,42,30}, {22,25,41,18,21}, {37,42,48,45,25}, {36,48,35,40,30}} 출력
2