zoukankan      html  css  js  c++  java
  • c qsort()的辅助函数的用法

    什么都不用说,通过一个样例看看吧.

    typedef struct
    {
     int LinkID;
     int classnum;
     char name[20];
    }map;

    int comp1(const void *a,const void *b)
    {
     map *c=(map *)a;
     map *d=(map *)b;
     if(c->LinkID!=d->LinkID)
         return c->LinkID-d->LinkID;
        else
            return d->LinkID-c->LinkID;
    }

    int comp2(const void *a,const void *b)
    {
     map *c=(map *)a;
     map *d=(map *)b;
     if(c->classnum!=d->classnum)
         return c->classnum-d->classnum;
        else
            return d->classnum-c->classnum;
    }

    void sortInfo(int const n)
    {
     FILE *file=fopen("map.txt","r+");
     map mymap[200];
     int i=0;
     if(file==NULL)
     {
      printf("打开文件失败!\n");
      exit(0); 
     }
     
     fread(mymap,sizeof(map),n,file);
     
     printf("输入排序方式(1 按LinkID; 2 按 classnum): ");
     scanf("%d",&i);
     if(i==1)
        qsort(mymap,n,sizeof(map),comp1);
      else
           qsort(mymap,n,sizeof(map),comp2);
          
        rewind(file);  //重置位置指针.
        fwrite(mymap,sizeof(map),n,file);
        fclose(file);
    }

  • 相关阅读:
    16.什么是面向对象编程?
    15.运动
    14.this指向和ES6常用内容
    13.正则表达式
    12.事件模型
    11.event事件对象
    10.BOM
    9.DOM
    拓扑排序学习(复习)笔记
    [Luogu] P1987 摇钱树
  • 原文地址:https://www.cnblogs.com/wmx3ng/p/2775961.html
Copyright © 2011-2022 走看看