题解 | 成绩排序

成绩排序

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

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务