B00001 C语言动态存储分配空间作为数组

将动态存储分配的空间作为数组的存储空间来使用。

使用随机数函数生成数据填入数组中,随机数为整数,值的范围为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("
");
}
输入数据个数为10时的运行结果如下:

请输入数据个数:10
排序前:763 481 720 265 74 738 784 884 371 591
排序后:74 265 371 481 591 720 738 763 784 884

原文地址:https://www.cnblogs.com/tigerisland/p/7564888.html