函数insert()的功能是在一维数组 a 中将 x 插入到下标为 i(i>=0) 的元素前,如果 i>= 元素个数,则x插入到末尾。元素个数存放在指针 n 所指向的变量中,插入后元素个数加1。 #include <stdio.h> void insert(int a[ ], int *n, int x, int i) { int j; if ( ){ for (j = *n-1; ; j--){ = a[j]; } }else{ i = *n; } a[i]= ; (*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; }
时间: 2023-11-30 09:03:13 浏览: 342
在代码中有几个部分需要填空:
1. if ( ) 中的条件是 i>=*n,即插入位置超出了数组范围,此时需要将 x 插入到数组末尾。
2. for (j=*n-1; ; j--) 中的空格表示循环条件,即 j>=i。此时需要将 a[j] 往后移动一位,为插入 x 腾出位置。
3. a[i]= 中的空格表示要插入的元素,即 x 。
下面是完整的代码实现:
```c
#include <stdio.h>
void insert(int a[], int *n, int x, int i) {
int j;
if (i>=*n){
i = *n;
}else{
for (j=*n-1; j>=i; j--){
a[j+1] = a[j];
}
}
a[i]=x;
(*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;
}
```
阅读全文