/* 题目描述: 成绩排序,定义一个结构体,包含学号和成绩,学号由程序按1-n自动生成, 在输入n个学生的成绩之后,按照成绩排序,并输出排序后的学号。 数据规模:0<=N<=1000 输入: 第一行,即一个整数N 接下来n行,输入成绩 输出: 输出排序后的学号(空格隔开) */ #include <iostream> #include <algorithm> using namespace std; struct Student{ int score; int num; }; bool compare(Student a,Student b){ return a.score>b.score;//按成绩降序排列 } int main(){ Student stu[100]; int N; cin>>N; for(int i=0;i<N;i++){ cin>>stu[i].score; stu[i].num=i+1; } sort(stu,stu+N,compare); for(int i=0;i<N;i++){ if(i==N-1) cout<<stu[i].num; else cout<<stu[i].num<<" "; } return 0; }