在做题时遇到了问题,要用结构体,没什么思绪,诚邀各位分析分析一下,谢谢了
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
struct Student
{
string name;
int score;
};
int main()
{
int n;
cin >> n;
vector<Student> students(n);
for (int i = 0; i < n; i++)
cin >> students[i].name >> students[i].score;
sort(students.begin(), students.end(), [](const auto &lhs, const auto &rhs)
{ return lhs.score > rhs.score; });
for (const auto &s : students)
cout << s.name << '\n';
return 0;
}
//冒泡排序
for(int i=0;i<num;i++)
{
for(int j=i+1;j<num;j++)
if(classstu[j].socre<classstu[i].socre)
{
int socre=classstu[i].socre;
char *name=classstu[i].name;
classstu[i].socre=classstu[j].socre;
*classstu[i].name=*classstu[j].name;
classstu[j].socre=socre;
*classstu[j].name=*name;
}
}
printf("打印学生姓名和成绩");
for(int i=0;i<num;i++)
printf("%s %d\n",classstu[i].name,classstu[i].socre);
return 0;
}