题解 | 成绩排序
成绩排序
https://www.nowcoder.com/practice/3f27a0a5a59643a8abf0140b9a8cf1f7
#include <stdio.h>
typedef struct student{
int hao;
int score;
}student;
void pai(int n,student s[]){//插入排序
student tempt;
int i,j;
for(i=1;i<n;i++){
tempt=s[i];//待排元素
for(j=i-1;j>=0&&(s[j].score>tempt.score||(s[j].score==tempt.score&&s[j].hao>tempt.hao));j--){
s[j+1]=s[j];
}
s[j+1]=tempt;
}
}
int main() {
int n;
student s[100];
while (scanf("%d", &n) != EOF) {
for(int i=0;i<n;i++){
scanf("%d %d",&s[i].hao,&s[i].score);
}
pai(n,s);
for(int i=0;i<n;i++){
printf("%d %d\n",s[i].hao,s[i].score);
}
}
return 0;
}
查看7道真题和解析