没什么思绪,诚邀各位分析分析一下(关键词-结构体)

在做题时遇到了问题,要用结构体,没什么思绪,诚邀各位分析分析一下,谢谢了

img

#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;
}

img


程序如下,如还有疑问欢迎私信我
#include<stdio.h>
struct stu{//学生结构体
char name[20];//姓名
int socre;//分数
}
classstu[50];//结构体数组,最大容量50人
int main()
{int num;//学生数量
printf("请输入学生数量");
scanf("%d",&num);
printf("请输入学生姓名和成绩,空格隔开,回车结束");
for(int i=0;i<num;i++)
scanf("%s %d",classstu[i].name,&classstu[i].socre);

//冒泡排序
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;
}