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("\n"); }输入数据个数为10时的运行结果如下:
请输入数据个数:10
排序前:763 481 720 265 74 738 784 884 371 591
排序后:74 265 371 481 591 720 738 763 784 884