重载大于大于运算符,并使用它在数组中找到最大值

时间:2018-08-02 12:50:50

标签: c++ operator-overloading overloading

我无法解决这个问题,数学部分给我带来了问题,有人可以帮忙吗?

#include <iostream>

using namespace std;
class soccerPlayer{
private:
    int jnum;
    int goals;
    int assist;
public:
    soccerPlayer(int, int, int);
    friend ostream& operator<<(ostream&, soccerPlayer&);
    friend istream& operator>>(istream&, soccerPlayer&);
    soccerPlayer operator>(soccerPlayer);


};
soccerPlayer soccerPlayer::operator>(soccerPlayer socc){

}
soccerPlayer::soccerPlayer(int num, int go, int assit){
    jnum = num;
    goals = go;
    assist = assit;
}
ostream& operator<<(ostream& out, soccerPlayer& soc){
    out << soc.jnum << endl << soc.goals << endl << soc.assist << endl;
    return out;
}
istream& operator>>(istream& in, soccerPlayer& socca){
    cout << endl;
    cout << "Enter jersey number: ";
    in >> socca.jnum;
    cout << "Enter number of goals: ";
    in >> socca.goals;
    cout << "Enter number of assists: ";
    in >> socca.assist;
    cout << endl;
    return in;
}


int main()
{
    soccerPlayer soc(75, 33, 50), soc2(44, 60, 80), soc3(65, 23, 44), soc4(55, 34, 12), soc5(45,102, 22),
    soc6(36, 22, 77), soc7(27, 12, 24), soc8(38,90, 9), soc9(88, 51, 15), soc10(99, 29, 104), soc11(78, 61, 5);

    return 0;
};

b。包括该类的operator>()函数。一个足球运动员被认为是更大的 如果目标加助攻的总和更大,则比另一个更大。 C。创建一个由11个SoccerPlayers组成的数组,然后使用>运算符查找具有以下条件的球员 最大的目标加助攻。

1 个答案:

答案 0 :(得分:0)

看来,您似乎没有尝试编写用于寻找最佳球员的代码。考虑到这一点,我将为您提供解决方案的思路,但我不会清楚地告诉您如何解决它,因为它应该是您的学习经验。您可以用更简单的方式考虑它。可以说,最好的球员是得分最高的球员。我们可以有一个数组playerGoals = [],其中包含每个玩家的进球数,所以说playerGoals = [3, 2, 6, 1, 4, 0, 2, 1, 0],这意味着玩家0进球3个,依此类推。您可能要尝试的方法是遍历数组并将每个数字与以前的最大数字进行比较,所以可以说

most_goals = 0;
for (int i = 0; i < playerGoals.size(); i++){
    if (playerGoals[i] > most_goals){
        most_goals = playersGoals[i];
        // Here you can also save the index if you want it
    }
}

这就是您要做的逻辑。 我没有故意为您解决问题,而是在指导下给了您一些思考。我希望这可以帮助您自行解决问题。