zoukankan      html  css  js  c++  java
  • C语言qsort函数用法

    qsort函数是C语言编辑器自带的排序函数。

     

     例如:按照学生的平均分从小到大,对结构体排序

    #include<stdio.h>
    #include<stdlib.h>
    
    struct Student{
        long num;
        int score[5];
        float average;
    };
    
    int comp(const void *p1,const void *p2)
    {
        return (*(struct Student*)p1).average>(*(struct Student*)p2).average?1:-1;
    }
    int main()
    {
        struct Student stud[10];
        srand((unsigned int)time(NULL));
        for(int i=0;i<10;i++)//生成分数
        {
            stud[i].average=0;
            for(int j=0;j<5;j++)
            {
                stud[i].score[j]=rand()%(100-60+1)+60;
                stud[i].average+=stud[i].score[j];
            }
            stud[i].average/=5;
        }
    
        for(int i=0;i<10;i++)//生成学号
            stud[i].num=19020001+i;
    
        for(int i=0;i<10;i++)//排序前
        {
            printf("%ld:",stud[i].num);
            for(int j=0;j<5;j++)
            {
                printf("%d ",stud[i].score[j]);
            }
            printf("%.2f ",stud[i].average);
            putchar(10);
        }
        qsort(stud,10,sizeof(stud[0]),comp);
        putchar(10);
        for(int i=0;i<10;i++)//排序后
        {
            printf("%ld:",stud[i].num);
            for(int j=0;j<5;j++)
            {
                printf("%d ",stud[i].score[j]);
            }
            printf("%.2f ",stud[i].average);
            putchar(10);
        }
        return 0;
    }
    View Code

    comp函数

    int comp(const void *p1,const void *p2)
    {
        return (*(struct Student*)p1).average>(*(struct Student*)p2).average?1:-1;
    }
    qsort(stud,10,sizeof(stud[0]),comp);

    运行结果

  • 相关阅读:
    音乐商店
    sort函数
    优先队列
    畅通工程 并查集,最小生成树,最短路径
    线段树(segment tree )
    bfs
    完全背包
    【Matlab】向图像域添加噪声/高斯/均匀/伽马/指数/椒盐
    【手帐】Bullet Journal教程
    【Matlab】取整函数:fix/round/floor/ceil
  • 原文地址:https://www.cnblogs.com/Hfolsvh/p/14188818.html
Copyright © 2011-2022 走看看