程序填空题:数组插值
函数`insert()`的功能是在一维数组 $$a$$ 中将 $$x$$ 插入到下标为 $$i (i >= 0)$$ 的元素前,如果 $$i>=$$ 元素个数,则$$x$$插入到末尾。元素个数存放在指针 $$n$$ 所指向的变量中,插入后元素个数加1。
```c++
#include
void insert(int a[ ], int *n, int x, int i)
{
int j;
if (@@[i < *n](1)){
for (j = *n-1; @@[ j >= i](1) ; j--){
@@[a[j+1]](1) = a[j];
}
}else{
i = *n;
}
a[i]= @@[x](1) ;
(*n)++;
}
int main()
{
int a[100], x, i, n;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &a[i]);
}
scanf("%d%d", &x, &i);
insert(a, &n, x, i);
for(i = 0; i < n; i++){
printf("%d " , a[i]);
}
printf("\n");
return 0;
}
```
答案:
第1空:i < *n
第2空: j >= i
第3空:a[j+1]
第4空:x
```c++
#include
void insert(int a[ ], int *n, int x, int i)
{
int j;
if (@@[i < *n](1)){
for (j = *n-1; @@[ j >= i](1) ; j--){
@@[a[j+1]](1) = a[j];
}
}else{
i = *n;
}
a[i]= @@[x](1) ;
(*n)++;
}
int main()
{
int a[100], x, i, n;
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &a[i]);
}
scanf("%d%d", &x, &i);
insert(a, &n, x, i);
for(i = 0; i < n; i++){
printf("%d " , a[i]);
}
printf("\n");
return 0;
}
```
答案:
第1空:i < *n
第2空: j >= i
第3空:a[j+1]
第4空:x