2 思路函数:insert()
功能:使用指针插入元素
描述:在有序(升序)的数组中插入一个数,使得插入的数组仍然有序
- 参数传递,使用指针变量
- 插入数字,找到插入点,从数组的末端逐个向后移动,最后将要插入的数字放到插入点
#include#include #define N 10 void insert(int *a, int num) { printf("%dn", num); int i=0, j=N+1; for ( ; i <= N; ++i) { if (num < *(a+i)) break; // 插入的数据记录大于数组中数据的位置 } for ( ; j > i; --j) { *(a+j) = *(a+j-1); } *(a+i) = num; } int main(int argc, char const *argv[]) { int a[N+1], add_num; int *p; printf("输入十个数字:n"); for (int i = 0; i < N; i++) scanf("%d", &a[i]); printf("输入要插入的数字: "); scanf("%d", &add_num); insert(a, add_num); printf("插入后的数组为: "); for (int i = 0; i < N+1; ++i) { printf("%d ", a[i]); } printf("n"); return 0; }
示例结果:
$ gcc ex025.c -o demo $ ./demo 输入十个数字: 1 2 3 4 5 7 8 9 10 11 输入要插入的数字: 6 6 插入后的数组为: 1 2 3 4 5 6 7 8 9 10 11



