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
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP