c语言使用动态数组完成数字的排列功能
时间: 2024-09-17 12:03:36 浏览: 56
C语言:将数组中的数逆序排放
在C语言中,动态数组通常通过`malloc`函数来创建并管理内存,可以用来实现数字的排列功能,如冒泡排序、快速排序等算法。下面是一个简单的例子,展示如何使用动态数组来实现冒泡排序:
```c
#include <stdio.h>
#include <stdlib.h>
// 动态分配数组
int* create_array(int size) {
int* arr = (int*) malloc(size * sizeof(int));
if (!arr) {
printf("Memory allocation failed.\n");
exit(1);
}
return arr;
}
// 冒泡排序
void bubble_sort(int* 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]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
// 主函数演示数组排序
int main() {
int size;
printf("Enter the number of elements: ");
scanf("%d", &size);
// 动态分配并初始化数组
int* arr = create_array(size);
for (int i = 0; i < size; i++) {
scanf("%d", arr + i); // 读取用户输入的数字存入数组
}
// 排序数组
bubble_sort(arr, size);
// 输出排序后的数组
printf("Sorted array:\n");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
free(arr); // 释放动态分配的内存
return 0;
}
```
在这个例子中,用户首先输入数组大小,然后程序动态分配数组并读取用户输入的数字。接着,使用冒泡排序对数字进行排序,并最后打印出排序结果。记得在不再需要数组时,别忘了调用`free`释放内存。
阅读全文