#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
void setName(string name)
{
m_name = name;
}
void setScore(int num)
{
m_score = num;
}
string getName()
{
return m_name;
}
int getScore()
{
return m_score;
}
private:
string m_name;
int m_score;
};
int main()
{
string name;
int num,score,temp,max=0;
Student arr[100];
cin >> num;
for (int i = 0; i < num; i++)
{
cin >> score >> name;
arr[i].setScore(num);
arr[i].setName(name);
if (arr[i].getScore() > max)
{
max = arr[i].getScore();
temp = i ;
}
}
cout << arr[temp].getName() << endl;
return 0;
}
自己测试是没问题的啊
目测是一些特殊情况导致的WA
我能想到的就是: 只有一个人,且这个人的分数是0分
这种情况下走下你的代码,temp就会是一个未知的数导致错误。两个解决办法,一个是temp初始化为0,一个是大于号改为大于等于