随机输入(或随机产生)30个数,采用冒泡排序完成对这30个数的排序,c原因呢
时间: 2025-07-05 16:59:42 浏览: 4
### 使用C语言生成30个随机数并用冒泡排序算法进行排序
为了实现这一目标,程序需要完成两项主要任务:一是生成指定数量的随机数;二是利用冒泡排序算法对这些随机数进行排序。以下是具体的实现方式:
#### 随机数生成
在C语言中,可以使用`rand()`函数来生成伪随机数。为了确保每次运行程序时都能得到不同的随机数值,在调用`rand()`之前应该先通过`srand(time(NULL))`设置种子。
#### 冒泡排序算法应用
冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,依次比较相邻元素,并根据大小关系交换它们的位置。这个过程会持续到整个列表变得有序为止[^1]。
下面是完整的代码示例,展示了如何创建一个含有30个随机整数数组,并对其实施冒泡排序操作:
```c
#include <stdio.h>
#include <stdlib.h> // For rand(), srand()
#include <time.h> // For time()
#define SIZE 30 // 定义数组大小为30
void bubbleSort(int arr[], int size);
void printArray(const int arr[], int size);
int main(void){
int nums[SIZE];
// 初始化随机数发生器
srand((unsigned)time(NULL));
// 填充数组中的随机值
for (int i = 0; i < SIZE; ++i)
nums[i] = rand() % 100 + 1;
puts("原始数据:");
printArray(nums, SIZE);
// 对数组进行冒泡排序
bubbleSort(nums, SIZE);
puts("\n已排序的数据:");
printArray(nums, SIZE);
return 0;
}
// 实现冒泡排序功能
void bubbleSort(int arr[], int size){
int temp;
for (int pass = 0; pass < size - 1; ++pass){
for (int i = 0; i < size - 1 - pass; ++i){
if (arr[i] > arr[i + 1]){
// 互换位置
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
}
// 打印数组内容
void printArray(const int arr[], int size){
for (int i = 0; i < size; ++i)
printf("%d ", arr[i]);
}
```
这段代码首先定义了一个长度为30的整型数组`nums[]`用来存储随机产生的数字。接着初始化随机数生成器,并填充该数组。之后打印未排序前的数据,再调用自定义的`bubbleSort()`函数来进行升序排列最后再次显示已经过排序处理的结果。
阅读全文
相关推荐















