Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ นับนักเรียนที่คะแนนมากกว่าคนแรก


สมมติว่ามีนักเรียน n คน แต่ละคนมีคะแนน 5 วิชา คนแรกคือ กมล ต้องนับจำนวนนักเรียนที่คะแนนรวมมากกว่ากมล สร้างคลาส Student มี 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 (คนที่ 3 และ 4 มากกว่ากมล)

ขั้นตอนการแก้ปัญหา

  • สร้างอาเรย์ Student s[n]
  • โหลดคะแนนทั้งหมดลง s[i]
  • kamal_sc := s[0].calculateTotalScore()
  • count := 0 วนลูป i=1 ถึง n-1 ถ้า s[i].calculateTotalScore() > kamal_sc count++
  • คืนค่า 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