使用c语言,以数据结构的方式请编写程序从D:\source.txt中读出数据,从教材里的排序算法中选择一种对这些数据进行排序,然后将排序后的数据写入新文件D:\target.txt中。
时间: 2024-03-12 22:46:23 浏览: 69
好的,我可以为您提供这方面的帮助。以下是一个简单的程序,使用冒泡排序算法对文件中的数据进行排序。
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 1000
void bubble_sort(int arr[], int n) {
int i, j, temp;
for(i = 0; i < n; i++) {
for(j = 0; j < n - i - 1; j++) {
if(arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main(void) {
int arr[MAX_SIZE], num, i;
FILE *fp_in, *fp_out;
// 打开输入文件
fp_in = fopen("D:\\source.txt", "r");
if(fp_in == NULL) {
printf("Error opening source file!\n");
exit(1);
}
// 读入数据
i = 0;
while(fscanf(fp_in, "%d", &num) == 1) {
arr[i] = num;
i++;
}
fclose(fp_in);
// 对数据进行排序
bubble_sort(arr, i);
// 打开输出文件
fp_out = fopen("D:\\target.txt", "w");
if(fp_out == NULL) {
printf("Error creating target file!\n");
exit(1);
}
// 将排序后的数据写入输出文件
for(i = 0; i < n; i++) {
fprintf(fp_out, "%d ", arr[i]);
}
fclose(fp_out);
return 0;
}
```
这个程序中,我们首先打开输入文件,读取数据并存储在一个数组中。然后,我们使用冒泡排序算法对数组进行排序。最后,我们打开输出文件,将排序后的数据写入其中。
请注意,此程序仅适用于整数类型的数据。如果您的数据类型不同,请相应地更改程序中的格式说明符和数组类型。
阅读全文