C语言实现随机数去重与排序
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
"C语言编程练习,涉及排序和去重操作。" 在这份资源中,主要探讨了如何使用C语言解决一个关于排序和去重的问题。这个问题被称为"明明的随机数",要求从一系列随机生成的整数中去除重复项,并对剩余的唯一整数进行排序。 首先,代码片段展示了一个简单的排序函数`Comp`,它使用了`qsort`函数进行排序。`Comp`函数是`qsort`的比较函数,基于`strcmp`来比较两个字符串。在这个例子中,字符串实际上存储的是整数,所以`strcmp`在这里并不适用。如果我们要比较整数,应直接使用`int`类型而非`char*`,并且比较操作应改为`*(int*)p1 < *(int*)p2`或相应的降序版本。 接着,`main`函数中展示了如何初始化一个字符串数组`a`并对其进行排序。这里,数组元素实际上是字符串形式的整数,因此在实际应用中,应该将数组`a`的元素改为`int`类型,然后直接使用整数进行排序。 问题描述部分提到,需要生成N个1到1000之间的随机整数,且去除重复项。这可以通过创建一个大小为1001的数组`a`来实现,数组的每个元素代表一个可能的整数,初始值为0。当读取到一个新整数时,如果该位置的值为0,就将其置为1并增加计数器`count`。这样,`count`就是不重复整数的个数。 输入部分,程序会读取两个整数:N(随机数的个数)和N个随机数。输出部分则需打印出不重复整数的个数M以及这些整数,按照从小到大的顺序。 样例输入和输出展示了具体的操作流程,但此处的图片没有被转换成文本。在实际代码中,应使用`scanf`或`fgets`等输入函数读取用户输入,然后调用自定义的`input`函数处理数据。在处理完去重后,可以调用`qsort`进行排序,最后在`output`函数中输出结果。 这个练习可以帮助学习者巩固C语言的基础知识,包括数组、指针、内存管理、排序算法以及文件输入输出。同时,它也引入了实际问题解决的概念,使学习更具实践意义。
![](https://csdnimg.cn/release/download_crawler_static/3208899/bg1.jpg)
![kz](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)