|
发表于 2021-11-9 17:00:52
|
显示全部楼层
本帖最后由 hrpzcf 于 2021-11-9 17:13 编辑
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define SIZE 15 // 定义数组长度
- // 用于打印数组
- void print_array(int array[], int n)
- {
- for (int i = 0; i < n; ++i)
- printf("%d\t", array[i]);
- printf("\n");
- }
- // 生成指定范围随机数
- int randint(int start, int stop)
- {
- int range;
- if ((range = stop - start) <= 0)
- {
- printf("Empty range of (%d, %d).\n", start, stop);
- return 0;
- }
- return rand() % (range + 1) + start;
- }
- // 用于初始化数组
- void init_array(int array[], int n)
- {
- srand((unsigned int)time(0));
- for (int i = 0; i < n; ++i)
- {
- array[i] = randint(-100, 200);
- }
- }
- // 升序排序数组
- void sort_array(int array[], int n)
- {
- int temp;
- for (int i = 0; i < n - 1; ++i)
- {
- for (int j = i; j < n; ++j)
- {
- if (array[i] > array[j])
- {
- temp = array[i];
- array[i] = array[j];
- array[j] = temp;
- }
- }
- }
- }
- // 删除数组指定下标元素
- void del_index_val(int index, int new_array[], int array[], int n)
- {
- int i = 0, j = 0;
- while (i < n)
- {
- if (i == index)
- {
- ++i;
- continue;
- }
- new_array[j++] = array[i++];
- }
- }
- int main(void)
- {
- int A[SIZE];
- init_array(A, SIZE); //初始化数组
- printf("初始化后数组值:\n");
- print_array(A, SIZE); //打印数组
- sort_array(A, SIZE); //排序数组
- printf("排序后数组值:\n");
- print_array(A, SIZE); //打印数组
- int B[SIZE - 1]; //初始化SIZE-1长度新数组用于装下删除了下标10元素的A数组
- del_index_val(10, B, A, SIZE); //删除下标为10的元素
- printf("删除下标10的元素后数组值:\n");
- print_array(B, SIZE - 1); //打印数组
- return 0;
- }
复制代码 |
|