首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用qsort()使用函数指针按用户需要的顺序进行排序的C代码

使用qsort()函数可以按用户需要的顺序对数组进行排序。qsort()函数是C语言标准库中的一个排序函数,其原型如下:

代码语言:txt
复制
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));

参数说明:

  • base:指向待排序数组的指针。
  • nmemb:待排序数组中元素的个数。
  • size:待排序数组中每个元素的大小(以字节为单位)。
  • compar:指向比较函数的指针,用于确定排序顺序。

比较函数的原型如下:

代码语言:txt
复制
int compar(const void *a, const void *b);

比较函数接受两个指向待比较元素的指针,并返回一个整数值,表示两个元素的大小关系。如果返回值小于0,则表示a应该排在b之前;如果返回值大于0,则表示a应该排在b之后;如果返回值等于0,则表示a和b相等,排序顺序不变。

下面是一个使用qsort()函数按用户需要的顺序对整型数组进行排序的示例代码:

代码语言:txt
复制
#include <stdio.h>
#include <stdlib.h>

// 比较函数,按升序排序
int ascending(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}

// 比较函数,按降序排序
int descending(const void *a, const void *b) {
    return (*(int*)b - *(int*)a);
}

int main() {
    int arr[] = {5, 2, 8, 1, 9};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    printf("Original array: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    // 按升序排序
    qsort(arr, size, sizeof(int), ascending);
    printf("Ascending order: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    // 按降序排序
    qsort(arr, size, sizeof(int), descending);
    printf("Descending order: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
    
    return 0;
}

以上代码中,首先定义了两个比较函数ascending()descending(),分别用于升序和降序排序。然后,使用qsort()函数对数组进行排序,并输出排序结果。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云函数计算(云原生应用开发):https://cloud.tencent.com/product/scf
  • 腾讯云数据库(云数据库服务):https://cloud.tencent.com/product/cdb
  • 腾讯云服务器(云服务器):https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(云存储服务):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(区块链应用开发):https://cloud.tencent.com/product/tbaas
  • 腾讯云人工智能(AI开发平台):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(物联网开发平台):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动应用开发):https://cloud.tencent.com/product/mpp
  • 腾讯云音视频(音视频处理):https://cloud.tencent.com/product/mps
  • 腾讯云安全(云安全服务):https://cloud.tencent.com/product/saf
  • 腾讯云存储(云存储服务):https://cloud.tencent.com/product/cos
  • 腾讯云元宇宙(元宇宙开发平台):https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券