在C语言中,可以使用标准库函数qsort()
来对数组进行排序。qsort()
函数的原型如下:
void qsort(void* base, size_t num, size_t size, int (*compar)(const void*, const void*));
其中,base
是指向待排序数组的指针,num
是数组元素个数,size
是每个元素的大小(以字节为单位),compar
是一个用来比较两个元素的函数指针。
下面是一个示例代码,展示如何使用qsort()
函数对两个数组按照共同的逻辑进行排序:
#include
#include
// 比较两个整数的函数
int compare_int(const void* a, const void* b) {
int num1 = *(const int*)a;
int num2 = *(const int*)b;
if (num1 < num2) {
return -1;
} else if (num1 > num2) {
return 1;
} else {
return 0;
}
}
int main() {
int array1[] = {5, 2, 8, 1, 6};
int array2[] = {9, 3, 7, 4, 0};
int size = sizeof(array1) / sizeof(array1[0]);
// 对array1进行排序
qsort(array1, size, sizeof(int), compare_int);
// 对array2进行排序
qsort(array2, size, sizeof(int), compare_int);
// 打印排序后的结果
printf("Sorted array1: ");
for (int i = 0; i < size; i++) {
printf("%d ", array1[i]);
}
printf("\n");
printf("Sorted array2: ");
for (int i = 0; i < size; i++) {
printf("%d ", array2[i]);
}
printf("\n");
return 0;
}
上述代码中,我们定义了一个比较两个整数的函数compare_int()
,用于传递给qsort()
函数进行元素比较。然后,我们分别对array1
和array2
进行排序,并打印排序后的结果。
注意:在实际使用中,根据具体需求,你可能需要修改比较函数compare_int()
的实现,以适应不同的排序逻辑。