+ 1

Classes and Objects : How to pass value to method void input()?

The requirement is Main() is fixed I can only change Student class. Thank you for help. class Student { private: int scores; public: Student() { scores = 0; } void input() { scores += scores; } int calculateTotalScore() { int totScore; totScore = scores; return totScore; } }; in the main area: int main() { int n; // number of students cin >> n; Student *s = new Student[n]; // an array of n students for(int i = 0; i < n; i++){ s[i].input(); } // calculate kristen's score int kristen_score = s[0].calculateTotalScore(); // determine how many students scored higher than kristen int count = 0; for(int i = 1; i < n; i++){ int total = s[i].calculateTotalScore(); if(total > kristen_score){ count++; } } // print result cout << count; return 0; }

3rd Apr 2017, 5:06 AM
xxxx xxxxx
xxxx xxxxx - avatar
3 Answers
+ 1
this is the correct answer you need to loop. class Student { private: int scores[5]; int sum; public: Student(): sum(0){}; void input() { for(int i=0;i<5;i++) { cin >> scores[i]; sum += scores[i]; } } int calculateTotalScore() { return sum; } };
3rd Apr 2017, 7:58 AM
xxxx xxxxx
xxxx xxxxx - avatar
+ 7
define your method like this: void input() { int score; cin >> score; scores+=score; }
3rd Apr 2017, 6:30 AM
Karl T.
Karl T. - avatar
0
but i can't edit the main() area: s[i].input();
3rd Apr 2017, 6:17 AM
xxxx xxxxx
xxxx xxxxx - avatar