c语言定义一个动态数组,长度为变量n,用随机函数给数组各元素赋值。然后对数组各单元冒泡排序,定义swap函数交换数据单元,要求参数使用指针传递
时间: 2023-05-28 12:07:08 浏览: 204
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int *a, int *b); // 定义swap函数交换数据单元
int main()
{
int n;
printf("请输入数组长度n:");
scanf("%d", &n);
int *arr = (int*)malloc(n * sizeof(int)); // 定义一个动态数组,长度为变量n
srand(time(NULL)); // 随机数种子
// 用随机函数给数组各元素赋值
for(int i=0; i<n; i++)
{
arr[i] = rand() % 100; // 随机数范围为0~99
}
// 对数组各单元冒泡排序
for(int i=0; i<n-1; i++)
{
for(int j=0; j<n-i-1; j++)
{
if(arr[j] > arr[j+1])
{
swap(&arr[j], &arr[j+1]); // 调用swap函数交换数据单元
}
}
}
// 输出排序后的数组
printf("排序后的数组为:");
for(int i=0; i<n; i++)
{
printf("%d ", arr[i]);
}
free(arr); // 释放动态数组的内存空间
return 0;
}
void swap(int *a, int *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
阅读全文