以下是一个示例程序,生成100个随机数并进行从小到大排序(冒泡排序):
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_SIZE 100
// 冒泡排序函数
void bubble_sort(int *arr, int size) {
int i, j, temp;
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[MAX_SIZE];
int i, size = 0;
FILE *fp;
// 生成100个随机数
srand(time(NULL));
for (i = 0; i < MAX_SIZE; i++) {
arr[i] = rand() % 1000;
size++;
}
// 将随机数存入文件中
fp = fopen("random_numbers.txt", "w");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (i = 0; i < size; i++) {
fprintf(fp, "%d\n", arr[i]);
}
fclose(fp);
// 从文件中读取数据并进行排序
int *ptr = (int*)malloc(size * sizeof(int));
fp = fopen("random_numbers.txt", "r");
if (fp == NULL) {
printf("Failed to open file.\n");
return 1;
}
for (i = 0; i < size; i++) {
fscanf(fp, "%d", ptr+i);
}
fclose(fp);
bubble_sort(ptr, size);
// 输出排序结果
printf("Sorted array:\n");
for (i = 0; i < size; i++) {
printf("%d ", *(ptr+i));
}
printf("\n");
free(ptr);
return 0;
}
```
以下是将冒泡排序过程单独写成一个函数,并在主函数中通过调用该函数实现对任意输入的多个数据进行排序的示例程序:
```c
#include <stdio.h>
#define MAX_SIZE 100
// 冒泡排序函数
void bubble_sort(int *arr, int size) {
int i, j, temp;
for (i = 0; i < size - 1; i++) {
for (j = 0; j < size - i - 1; j++) {
if (arr[j] > arr[j+1]) {
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
int arr[MAX_SIZE];
int i, size = 0;
// 读取输入的数据
printf("Enter the number of elements: ");
scanf("%d", &size);
printf("Enter %d elements:\n", size);
for (i = 0; i < size; i++) {
scanf("%d", arr+i);
}
// 对数据进行排序
bubble_sort(arr, size);
// 输出排序结果
printf("Sorted array:\n");
for (i = 0; i < size; i++) {
printf("%d ", *(arr+i));
}
printf("\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考