解题思路:

不使用常规排序算法,不适用三目运算符。
使用 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.0分

4 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 1 条评论

wzc2022 2年前 回复TA
太秀了 为什么不直接使用指针交换数据