题目很基础,可以自己写排序,没有要求。
但是在成绩相同时,要求以名字字母排序;
使用char 时可以使用《cstring》 里面的比较函数
使用string时,则可以直接比较大小
下面是我写的代码。
#include <iostream>
#include <string>
using namespace std;
struct student
{
string name;
int score;
};
int main()
{
int num;//个数
cin>>num;
student mystudent[num];
for(int i=0;i<num;i++)
{
cin>>mystudent[i].name>>mystudent[i].score;
}
for(int i=0;i<num;i++)
{
int max = i;
for(int j=i;j<num;j++)
{
if(mystudent[j].score>mystudent[max].score)
{
max = j;
}
if((mystudent[j].score==mystudent[max].score&&mystudent[j].name<mystudent[max].name))
{
max = j;
}
}
student out = mystudent[i];
mystudent[i] = mystudent[max];
mystudent[max] = out;
}
for(int i=0;i<num;i++)
{
cout<<mystudent[i].name<<" "<<mystudent[i].score<<endl;
}
return 0;
}