Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C stdlib qsort() 函数

❮ C stdlib 库


示例

排序数组

// Comparing function:
// Returns a positive number if a is greater than b
// Returns a negative number if a is less than b
// Returns 0 if a is equal to b
int compare(const void *a, const void *b) {
  int *valA = a;
  int *valB = b;
  return *valA - *valB;
}

int main() {
  // Create an array
  int myArray[] = {20, 32, 5, 2, 24, 15};
  int size = sizeof(myArray) / sizeof(myArray[0]);

  // Sort the values in the array
  qsort (myArray, size, sizeof(myArray[0]), compare);

  // Display the values of the array
  for(int i = 0; i < size; i++) {
    printf("%d ", myArray[i]);
  }

  return 0;
}
自己尝试 »

定义和用法

qsort() 函数将数组中的元素从小到大排序。

qsort() 函数在 <stdlib.h> 头文件中定义。


语法

qsort(void * arr, size_t amount, size_t size, compare);

size_t 数据类型是一个非负整数。

参数值

参数 描述
arr 必需。指定要排序的数组。
amount 必需。指定数组中元素的数量。
size 必需。指定数组中一个元素的大小(以字节为单位)。
compare 必需。指定一个函数,用于比较数组中成对的元素以确定哪个更大。
该函数应具有结构 int myFunction(const void * a, const void * b),其中参数 ab 是指向要比较的数组中元素的指针。
如果 a 大于 b,则该函数应返回一个正数;如果 a 小于 b,则返回一个负数;如果 ab 相等,则返回零。

❮ C stdlib 库

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.