解题思路:
不使用常规排序算法,不适用三目运算符。
使用 qsort 函数进行排序,解法属于“炫技型”,想要看懂题解,对指针的理解有一定的要求,主要目的是减少代码冗余,拓展适用面。
我们的 sort 函数(常规排序算法)只能接收一个整型的数组,但是我们有一个库函数可以接收任意数组,那样的话我们的算法通用性就更广了。这库函数包含在 stdlib.h 中,它的名字是 qsort,qsort 代表 Quick sort ,你应该向这个函数传入一个数组,一个任意的数组,可以是整型的或者是字符型的,甚至复杂的数据类型,一个结构体。
注意事项:
qsort 函数是 stdlib.h 的库函数
参考代码:
#include <stdio.h> #include<stdlib.h> #pragma warning(disable:4996) int compare(const void* a, const void* b) { int A = *((int*)a); int B = *((int*)b); return A - B; // 想要改变排序规则,一般只需要更改此函数的内容即可 } int main() { int A[3] = { 0 }; for (int i = 0; i < 3; i++) { scanf("%d", &A[i]); } // 四个参数,数组,数组长度,数组元素大小,排序规则 qsort(A, 3, sizeof(int), compare); for (int i = 0; i < 3; i++) { printf("%d ", A[i]); } return 0; }
0.0分
4 人评分
拆分位数 (C语言代码)浏览:1323 |
打水问题 (C语言代码)浏览:1055 |
C语言程序设计教程(第三版)课后习题6.6 (C语言代码)浏览:624 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:594 |
DNA (C语言描述,数据结构)浏览:848 |
母牛的故事 (C语言代码)浏览:715 |
简单的a+b (C语言代码)浏览:478 |
分糖果 (C语言代码)浏览:911 |
敲七 (C语言代码)浏览:2697 |
数列问题 (C语言代码)浏览:1017 |