用函数编程实现在一个按升序排序的数组中查找x应插入...
用函数编程实现在一个按升序排序的数组中查找x应插入的位置,将x插入数组中,使数组元素仍按升序排列。 提示:插入(Insertion)是数组的基本操作之一。插入法排序算法的关键在于要找到正确的插入位置,然后依次移动插入位置及其后的所有元素,腾出这个位置放入待插入的元素。插入排序的原理如图所示:在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include<stdio.h> #define N 20 /* 插入前数组最大元素个数 */ void Insert(int a[], int n, int x); int main() { int a[N+1]; /* 定义数组长度为插入前的数组元素个数加1 */ int x, i, n; printf("Input array size:\n"); scanf("%d", &n); /* 输入插入前数组元素个数 */ printf("Input array:\n"); for (i=0; i<n; i++) { scanf("%d", &a[i]); * 输入插入前已按升序排序的数组元素 } printf("input x:\n"); &x); 输入待插入的元素x insert(a, n, x); 插入元素x到已排序数组中 printf("after insert %d:\n", for (i="0;" printf("%4d", a[i]); 输出插入x后的数组元素 return 0; 函数功能:将x插入到一个已按升序排序的数组中 void insert(int a[], int x) i="0," pos; while (______________) 查找待插入位置 i++; pos="i;" 记录元素x应插入的数组下标位置pos _______; i--) 从尾部开始移动pos及其后所有的元素 _____________; 向后复制数组元素 a[pos]="x;" 插入元素x到位置pos> A、第30行: i < n && x > a[i] 第35行: i>= pos 第37行: a[i+1] = a[i]
B、第30行: i <= n && x> a[i] 第35行: i>= 0 第37行: a[i] = a[i+1]
C、第30行: i < n || x > a[i] 第35行: i>= 1 第37行: a[i+1] = a[i]
D、第30行: i < n && x >= a[i] 第35行: i> pos 第37行: a[i] = a[i+1]