将动态存储分配的空间作为数组的存储空间来使用。
使用随机数函数生成数据填入数组中,随机数为整数,值的范围为0到999。
用冒泡排序对数据进行排序。
程序如下:
#include <stdio.h>
#include<stdlib.h>
#include <time.h>
void getData(int [], int);
void printData(int [], int);
void bubblesort(int a[], int n);
int main(void)
{
int n;
int *pa;
printf("请输入数据个数:");
scanf("%d", &n);
pa = (int *) malloc(n * sizeof(int));
getData(pa, n);
printf("排序前:");
printData(pa, n); /* 输出数组a的元素 */
bubblesort(pa, n); /* 冒泡排序:对数组a中的元素进行排序 */
printf("排序后:");
printData(pa, n); /* 输出数组a的元素 */
free(pa);
return 0;
}
/* 冒泡排序 */
void bubblesort(int a[], int n)
{
int i, j;
for(i=n-1; i > 0; i--)
{
for(j=1; j<=i; j++)
if(a[j-1] > a[j]) {
int temp = a[j-1]; /* 交换两个相邻的数 */
a[j-1] = a[j];
a[j] = temp;
}
}
}
void getData(int d[], int n)
{
time_t t;
srand((unsigned) time(&t)); /* 设置随机数起始值 */
int i;
for(i=0; i < n; i++)
d[i] = rand() % 1000; /* 获得0-999之间的整数值 */
}
void printData(int d[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", d[i]);
printf("\n");
}
输入数据个数为10时的运行结果如下:
请输入数据个数:10
排序前:763 481 720 265 74 738 784 884 371 591
排序后:74 265 371 481 591 720 738 763 784 884