用C语言创建一个5*5的二维数组,并将它写入一个文件中。 在另一个程序中,从这个文件读取二维数组,并排序,排序后再次写入文件中
时间: 2024-03-14 14:46:18 浏览: 16
好的,下面是您需要的 C 语言代码示例。
创建一个 5x5 的二维数组,并将它写入文件:
```c
#include <stdio.h>
int main() {
int arr[5][5] = {{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}};
FILE* fp = fopen("array.txt", "w");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
fprintf(fp, "%d ", arr[i][j]);
}
fprintf(fp, "\n");
}
fclose(fp);
return 0;
}
```
这段代码使用了 C 语言中的二维数组来创建一个 5x5 的数组,并将它写入了一个名为 `array.txt` 的文件中。每行数字之间用空格隔开,每行末尾加上了一个换行符。
接下来,您需要另一个程序来读取这个文件并对数组进行排序。这里是另一个代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
int cmpfunc(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
int main() {
int arr[25];
FILE* fp = fopen("array.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (int i = 0; i < 25; i++) {
fscanf(fp, "%d", &arr[i]);
}
fclose(fp);
qsort(arr, 25, sizeof(int), cmpfunc);
fp = fopen("sorted_array.txt", "w");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (int i = 0; i < 25; i++) {
fprintf(fp, "%d ", arr[i]);
if ((i + 1) % 5 == 0) {
fprintf(fp, "\n");
}
}
fclose(fp);
return 0;
}
```
这段代码首先从文件中读取了之前写入的二维数组,并将它存储在一个一维数组中。然后,使用标准库函数 `qsort` 对它进行排序。最后,将排序后的数组写入一个名为 `sorted_array.txt` 的文件中。