C语言程序:筛选与排序数据

5星 · 超过95%的资源 需积分: 37 17 下载量 152 浏览量 更新于2024-09-10 收藏 144KB DOC 举报
"该资源是一份C语言的课程设计,目标是实现从文件in37.txt中读取200组包含三个整数的数据,并进行特定条件的筛选、排序及输出。具体要求是找到每组数据中第二个数大于第一个数与第三个数之和的条件,满足条件的数据存储到新的结构数组bb中,然后对bb中的数据按第二个数与第三个数之和降序排列。最后,使用writeDat()函数将结果写入out37.txt文件。" 在提供的源代码中,有以下几个关键部分: 1. `typedef struct` 定义了一个名为Data的结构体,包含三个整型成员变量x1, x2, x3,用于存储每组数据。 2. `aa[200]` 和 `bb[200]` 是两个Data类型的数组,分别用于存储原始数据和筛选后的数据。 3. `readDat()` 函数负责从文件"in37.txt"中读取200组数据,并存储到结构数组aa中。它使用`fopen()`打开文件,`fscanf()`读取数据,然后`fclose()`关闭文件。 4. `jsSort()` 函数是主要的逻辑处理函数,遍历aa数组,检查每组数据是否满足条件(x2 > x1 + x3),满足条件的数据存入bb数组,并计算满足条件的总数。接着,使用冒泡排序算法对bb数组进行排序,排序依据是每组数据的x2 + x3之和,排序后返回满足条件的总数。 5. `main()` 函数是程序的入口,调用`readDat()`、`jsSort()`和`writeDat()`,完成整个处理流程。 6. `writeDat(int count)` 函数接收jsSort()返回的满足条件的数据总数,然后将bb数组中排序好的数据写入文件"out37.txt",并打印到控制台。 程序的功能如下: - 读取文件中的200组三元素数据,并存储到结构数组aa中。 - 使用`jsSort()`函数筛选出满足条件(x2 > x1 + x3)的数据,并将其存储到数组bb中。 - 对数组bb中的数据根据每组数据的第二个数加第三个数之和进行降序排列。 - 将筛选和排序后的结果写入到新的文件out37.txt中,同时在控制台上展示。 通过这个程序,学生可以学习到文件操作、结构体的使用、数组处理、条件判断、循环结构、排序算法以及基本的输入输出操作等C语言基础知识。