Description
定义一个学生结构体,含学号(一维字符数组)、姓名、成绩(整型)。从键盘输入n(n<20),再输入n个学生的信息,按学生成绩从小到大顺序输出学生信息。
Input
输入一个n,接着输入n个学生的信息。
Output
按成绩从小到大顺序输出学生信息。
Sample Input
4
1001
Li
76
1002
Zhang
92
1003
Liu
85
1004
Wang
70
Sample Output
1004 Wang 70
1001 Li 76
1003 Liu 85
1002 Zhang 92
sort函数,结构体时的运用
#include<stdio.h>
#include<algorithm>
using namespace std;
struct st{
char a[100];
char name[100];
int score;
}s[22];
int comp(const st &s1,const st &s2){ // || int comp(st s1, st s2){
return s1.score<s2.score;
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%s",s[i].a);
scanf("%s",s[i].name);
scanf("%d",&s[i].score);
}
sort(s,s+n,comp);
for(int i=0;i<n;i++){
printf("%s %s %d\n",s[i].a,s[i].name,s[i].score);}
}
结构体内嵌函数:
结构体定义如下:
struct node{
char a[100], name[100];
int score;
bool operator <(const node &m)const{
return score < m.score;
}
}s[22];
可将comp函数删除, 改sort函数为:
sort(s, s + n);