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

    运行结果

  • 相关阅读:
    关于 Profile
    empty
    Vim Editor
    C++ Note
    Android NDK Sample
    Dealing with the ! when you import android project
    File attributes and Authority of Linux
    Java与C的相互调用
    The source code list of Android Git project
    Enable Android progurad in the case of multiple JAR lib
  • 原文地址:https://www.cnblogs.com/Hfolsvh/p/14188818.html
Copyright © 2011-2022 走看看