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