利用malloc函数实现动态数组创建和销毁,并实现一组n个数据的排序功能,其中n为一个由用户输入指定的整数。
时间: 2023-07-16 16:12:54 浏览: 115
以下是利用malloc函数实现动态数组创建和销毁,并实现一组n个数据的排序功能的代码:
```c
#include <stdio.h>
#include <stdlib.h>
void createArray(int **arr, int n) {
*arr = (int*)malloc(n * sizeof(int)); // 创建动态数组
for (int i = 0; i < n; i++) {
printf("请输入第%d个数:", i + 1);
scanf("%d", (*arr + i));
}
}
void destroyArray(int **arr) {
free(*arr); // 销毁动态数组
*arr = NULL;
}
void sortArray(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 n;
int *arr;
printf("请输入数组个数:");
scanf("%d", &n);
createArray(&arr, n); // 创建动态数组
sortArray(arr, n); // 排序
printf("排序后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", *(arr + i));
}
printf("\n");
destroyArray(&arr); // 销毁动态数组
return 0;
}
```
以上代码中,createArray函数利用malloc函数创建n个整数类型的动态数组,通过指针传递参数的方式将动态数组传递给主函数;destroyArray函数利用free函数销毁动态数组;sortArray函数对动态数组进行排序;主函数中,首先读入数组个数n,然后调用createArray函数创建动态数组,接着调用sortArray函数对动态数组进行排序,最后输出排序后的数组,最后调用destroyArray函数销毁动态数组。
阅读全文