c语言编写在0~1之间生成20个随机数,并将其排序
时间: 2024-11-22 15:35:57 浏览: 11
排序算法-基于C语言实现的排序算法之BogoSort实现.zip
在C语言中,你可以使用标准库中的rand()函数和srand()函数以及数组来生成0到1之间的随机数,并使用qsort()函数对它们进行排序。以下是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 定义数组大小
#define ARRAY_SIZE 20
// 随机数生成并存入数组
void generate_random_numbers(double arr[]) {
srand(time(0)); // 设置随机种子,保证每次运行结果不同
for (int i = 0; i < ARRAY_SIZE; i++) {
arr[i] = ((double) rand() / RAND_MAX); // 生成0到1之间的随机小数
}
}
// 冒泡排序算法
void bubble_sort(double arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) { // 如果前一个比后一个大,交换位置
double temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
double numbers[ARRAY_SIZE]; // 存放随机数的数组
generate_random_numbers(numbers);
printf("Generated random numbers before sorting:\n");
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%.2f ", numbers[i]);
}
bubble_sort(numbers, ARRAY_SIZE);
printf("\nSorted numbers:\n");
for (int i = 0; i < ARRAY_SIZE; i++) {
printf("%.2f ", numbers[i]);
}
return 0;
}
```
这个程序首先生成20个0到1之间的随机数,然后使用冒泡排序算法对这些数进行升序排列。请注意,这个例子中的随机数是浮点型的,因为rand()返回的是整数。
阅读全文