C++程序用于检查有多少学生的得分高于第一个学生
假设我们有n个学生在五门科目上的分数。第一个分数是Kamal的,还有n-1个其他学生的得分,每个学生有五门科目的得分。我们需要统计得分高于Kamal的学生人数。在这里,我们将定义一个名为students的类来加载每个学生的分数。该类有一个Input()函数用于输入,还有一个calculateTotalScore()函数用于根据给定的五门课的成绩计算学生的总分。
因此,如果输入类似于n = 4 scores = [[25,45,32,42,30],[22,25,41,18,21],[37,42,48,45,25],[36,48,35,40,30]],则输出将为2,因为最后两个学生的总分高于Kamal。
为了解决这个问题,我们将遵循以下步骤:
s := 一个包含n个Student类型对象的数组
for 初始化 i := 0,当 i < n,更新(i增加1),执行
将scores[i]的所有分数加载到s[i]中
kamal_sc := s[0]的总分
count := 0
for 初始化 i := 1,当 i < n,更新(i增加1),执行
total := s[i]的总分
如果 total > kamal_sc,则
(count增加1)
返回 count
示例
让我们看下面的实现来更好地理解:
#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
广告